Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Feb 2006 15:48:52 -0500
From:      Mikhail Teterin <mi+mxe@aldan.algebra.com>
To:        gnome@FreeBSD.org, kwm@FreeBSD.org, matthias.andree@gmx.de
Subject:   patching databases/evolution-data-server to USE_BDB
Message-ID:  <1141073332.93780.6.camel@mteterin.us.murex.com>

next in thread | raw e-mail | index | archive | help

--=-+1+GTNFbpXwN0WXhSm6Z
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hello!

The attached patch fixes evolution-data-server to use the already
installed version of libdb instead of building its own.

Frankly, I'm surprised, this was not done earlier. We even added
SleepyCat's official patch instead of relying on the efforts of the
databases/db4* maintainer(s)...

I'm sending this e-mail using Evolution built against db43...

Yours,

	-mi

--=-+1+GTNFbpXwN0WXhSm6Z
Content-Description: 
Content-Disposition: inline; filename=evo.diff
Content-Transfer-Encoding: base64
Content-Type: text/x-patch; charset=KOI8-U

SW5kZXg6IE1ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL21lb3cvbmN2cy9wb3J0cy9k
YXRhYmFzZXMvZXZvbHV0aW9uLWRhdGEtc2VydmVyL01ha2VmaWxlLHYNCnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yMg0KZGlmZiAtVTIgLXIxLjIyIE1ha2VmaWxlDQotLS0gTWFrZWZpbGUJMjMgRmVi
IDIwMDYgMTA6MzU6MDIgLTAwMDAJMS4yMg0KKysrIE1ha2VmaWxlCTI0IEZlYiAyMDA2IDIzOjQ4
OjMxIC0wMDAwDQpAQCAtOSw1ICs5LDUgQEANCiBQT1JUTkFNRT0JZXZvbHV0aW9uLWRhdGEtc2Vy
dmVyDQogUE9SVFZFUlNJT049CTEuNC4yLjENCi1QT1JUUkVWSVNJT049CTMNCitQT1JUUkVWSVNJ
T049CTQNCiBDQVRFR09SSUVTPQlkYXRhYmFzZXMgZ25vbWUNCiBNQVNURVJfU0lURVM9CSR7TUFT
VEVSX1NJVEVfR05PTUV9DQpAQCAtMTgsNyArMTgsNyBAQA0KIENPTU1FTlQ9CVRoZSBkYXRhIGJh
Y2tlbmRzIGZvciB0aGUgRXZvbHV0aW9uIGludGVncmF0ZWQgbWFpbC9QSU0gc3VpdGUNCiANCi1M
SUJfREVQRU5EUz0Jc291cC0yLjIuODoke1BPUlRTRElSfS9kZXZlbC9saWJzb3VwIFwNCi0JCW5z
czMuMToke1BPUlRTRElSfS9zZWN1cml0eS9uc3MgXA0KLQkJdGFzbjEuMjoke1BPUlRTRElSfS9z
ZWN1cml0eS9saWJ0YXNuMQ0KK0xJQl9ERVBFTkRTPQlzb3VwLTIuMjoke1BPUlRTRElSfS9kZXZl
bC9saWJzb3VwIFwNCisJCW5zczM6JHtQT1JUU0RJUn0vc2VjdXJpdHkvbnNzIFwNCisJCXRhc24x
OiR7UE9SVFNESVJ9L3NlY3VyaXR5L2xpYnRhc24xDQogDQogVVNFX0JaSVAyPQl5ZXMNCkBAIC0z
MCw0ICszMCw2IEBADQogVVNFX09QRU5MREFQPQl5ZXMNCiBVU0VfUkVJTlBMQUNFPQl5ZXMNCitV
U0VfQkRCPQk0MSsNCitNQUtFX0VOVis9CURCVkVSU0lPTj0ke0xJQl9ERVBFTkRTOk1kYio6Qyw6
LiosLDpSfQ0KIFVTRV9BVVRPVE9PTFM9CWxpYnRvb2w6MTUNCiBJTlNUQUxMU19TSExJQj0JeWVz
DQpAQCAtNDAsOCArNDIsMTAgQEANCiAJCS0td2l0aC1uc3ByLWxpYnM9JHtMT0NBTEJBU0V9L2xp
YiBcDQogCQktLXdpdGgta3JiNT0vdXNyDQotQ09ORklHVVJFX0VOVj0JQ1BQRkxBR1M9Ii1JJHtM
T0NBTEJBU0V9L2luY2x1ZGUgJHtQVEhSRUFEX0NGTEFHU30iIFwNCitDT05GSUdVUkVfRU5WPQlD
UFBGTEFHUz0iLUkke0xPQ0FMQkFTRX0vaW5jbHVkZS8ke0xJQl9ERVBFTkRTOk0qZGI0KjpUfSBc
DQorCQktSSR7TE9DQUxCQVNFfS9pbmNsdWRlICR7UFRIUkVBRF9DRkxBR1N9IiBcDQogCQlMREZM
QUdTPSItTCR7TE9DQUxCQVNFfS9saWIgJHtQVEhSRUFEX0xJQlN9Ig0KIA0KIFBMSVNUX1NVQj0J
VkVSU0lPTj0iMS40IiBFVk9fVkVSU0lPTj0iMS4yIg0KK0VYVFJBQ1RfQUZURVJfQVJHUz18ICR7
VEFSfSAteHBmIC0gLS1leGNsdWRlICcqL2xpYmRiJw0KIA0KIC5pbmNsdWRlIDxic2QucG9ydC5w
cmUubWs+DQpJbmRleDogZmlsZXMvcGF0Y2gtY29uZmlndXJlDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls
ZTogL21lb3cvbmN2cy9wb3J0cy9kYXRhYmFzZXMvZXZvbHV0aW9uLWRhdGEtc2VydmVyL2ZpbGVz
L3BhdGNoLWNvbmZpZ3VyZSx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMw0KZGlmZiAtVTIgLXIx
LjMgcGF0Y2gtY29uZmlndXJlDQotLS0gZmlsZXMvcGF0Y2gtY29uZmlndXJlCTUgTm92IDIwMDUg
MDQ6NTM6MTQgLTAwMDAJMS4zDQorKysgZmlsZXMvcGF0Y2gtY29uZmlndXJlCTI0IEZlYiAyMDA2
IDIzOjI0OjQ1IC0wMDAwDQpAQCAtMSw0ICsxLDEwIEBADQotLS0tIGNvbmZpZ3VyZS5vcmlnCUZy
aSBKdWwgMjkgMTc6MTM6NDQgMjAwNQ0KLSsrKyBjb25maWd1cmUJRnJpIEp1bCAyOSAxNzoxNTo1
MiAyMDA1DQorLS0tIGNvbmZpZ3VyZQlGcmkgSnVsIDI5IDE3OjEzOjQ0IDIwMDUNCisrKysgY29u
ZmlndXJlCUZyaSBGZWIgMjQgMTg6MjI6NTcgMjAwNg0KK0BAIC00NjUsNSArNDY1LDQgQEANCisg
DQorIGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgY2FsZW5kYXIvbGliaWNhbCINCist
YWNfc3ViZGlyc19hbGw9IiRhY19zdWJkaXJzX2FsbCBsaWJkYi9kaXN0Ig0KKyBhY19zdWJzdF92
YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBB
Q0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZp
eCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGly
IGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBp
bmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9h
bGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIElOU1RBTExf
UFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFBBQ0tBR0UgVkVS
U0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8gaW5zdGFs
bF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJfcCBBV0sg
U0VUX01BS0UgYW1fX2xlYWRpbmdfZG90IEFNVEFSIGFtX190YXIgYW1fX3VudGFyIEJBU0VfVkVS
U0lPTiBBUElfVkVSU0lPTiBMSUJFREFUQVNFUlZFUl9DVVJSRU5UIExJQkVEQVRBU0VSVkVSX1JF
VklTSU9OIExJQkVEQVRBU0VSVkVSX0FHRSBMSUJFREFUQVNFUlZFUlVJX0NVUlJFTlQgTElCRURB
VEFTRVJWRVJVSV9SRVZJU0lPTiBMSUJFREFUQVNFUlZFUlVJX0FHRSBMSUJFQ0FMX0NVUlJFTlQg
TElCRUNBTF9SRVZJU0lPTiBMSUJFQ0FMX0FHRSBMSUJFREFUQUNBTF9DVVJSRU5UIExJQkVEQVRB
Q0FMX1JFVklTSU9OIExJQkVEQVRBQ0FMX0FHRSBMSUJFQk9PS19DVVJSRU5UIExJQkVCT09LX1JF
VklTSU9OIExJQkVCT09LX0FHRSBMSUJFREFUQUJPT0tfQ1VSUkVOVCBMSUJFREFUQUJPT0tfUkVW
SVNJT04gTElCRURBVEFCT09LX0FHRSBMSUJFR1JPVVBXSVNFX0NVUlJFTlQgTElCRUdST1VQV0lT
RV9SRVZJU0lPTiBMSUJFR1JPVVBXSVNFX0FHRSBMSUJDQU1FTF9DVVJSRU5UIExJQkNBTUVMX1JF
VklTSU9OIExJQkNBTUVMX0FHRSBMSUJFWENIQU5HRV9TVE9SQUdFX0NVUlJFTlQgTElCRVhDSEFO
R0VfU1RPUkFHRV9SRVZJU0lPTiBMSUJFWENIQU5HRV9TVE9SQUdFX0FHRSBNQUlOVEFJTkVSX01P
REVfVFJVRSBNQUlOVEFJTkVSX01PREVfRkFMU0UgTUFJTlQgQ0MgQ0ZMQUdTIExERkxBR1MgQ1BQ
RkxBR1MgYWNfY3RfQ0MgRVhFRVhUIE9CSkVYVCBERVBESVIgYW1fX2luY2x1ZGUgYW1fX3F1b3Rl
IEFNREVQX1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggQ0NERVBNT0RFIGFtX19mYXN0
ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIENQUCBMRVggTEVYTElCIExFWF9PVVRQVVRf
Uk9PVCBZQUNDIEVHUkVQIExOX1MgSlcgSEFWRV9KV19UUlVFIEhBVkVfSldfRkFMU0UgSEFWRV9K
VyBJTlRMVE9PTF9ERVNLVE9QX1JVTEUgSU5UTFRPT0xfRElSRUNUT1JZX1JVTEUgSU5UTFRPT0xf
S0VZU19SVUxFIElOVExUT09MX1BST1BfUlVMRSBJTlRMVE9PTF9PQUZfUlVMRSBJTlRMVE9PTF9Q
T05HX1JVTEUgSU5UTFRPT0xfU0VSVkVSX1JVTEUgSU5UTFRPT0xfU0hFRVRfUlVMRSBJTlRMVE9P
TF9TT1VORExJU1RfUlVMRSBJTlRMVE9PTF9VSV9SVUxFIElOVExUT09MX1hBTV9SVUxFIElOVExU
T09MX0tCRF9SVUxFIElOVExUT09MX1hNTF9SVUxFIElOVExUT09MX1hNTF9OT01FUkdFX1JVTEUg
SU5UTFRPT0xfQ0FWRVNfUlVMRSBJTlRMVE9PTF9TQ0hFTUFTX1JVTEUgSU5UTFRPT0xfVEhFTUVf
UlVMRSBJTlRMVE9PTF9FWFRSQUNUIElOVExUT09MX01FUkdFIElOVExUT09MX1VQREFURSBJTlRM
VE9PTF9QRVJMIElOVExUT09MX0lDT05WIElOVExUT09MX01TR0ZNVCBJTlRMVE9PTF9NU0dNRVJH
RSBJTlRMVE9PTF9YR0VUVEVYVCBVU0VfTkxTIE1TR0ZNVCBHTVNHRk1UIFhHRVRURVhUIENBVEFM
T0dTIENBVE9CSkVYVCBEQVRBRElSTkFNRSBHTU9GSUxFUyBJTlNUT0JKRVhUIElOVExMSUJTIFBP
X0lOX0RBVEFESVJfVFJVRSBQT19JTl9EQVRBRElSX0ZBTFNFIFBPRklMRVMgUE9TVUIgTUtJTlNU
QUxMRElSUyBHRVRURVhUX1BBQ0tBR0UgbG9jYWxlZGlyIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92
ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIEVDSE8gQVIg
YWNfY3RfQVIgUkFOTElCIGFjX2N0X1JBTkxJQiBETExUT09MIGFjX2N0X0RMTFRPT0wgQVMgYWNf
Y3RfQVMgT0JKRFVNUCBhY19jdF9PQkpEVU1QIENYWCBDWFhGTEFHUyBhY19jdF9DWFggQ1hYREVQ
TU9ERSBhbV9fZmFzdGRlcENYWF9UUlVFIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFIENYWENQUCBGNzcg
RkZMQUdTIGFjX2N0X0Y3NyBMSUJUT09MIE9TX1dJTjMyX1RSVUUgT1NfV0lOMzJfRkFMU0UgTk9f
VU5ERUZJTkVEIFNPQ0tFVF9MSUJTIFJFR0VYX0xJQlMgSUNPTlZfQ0ZMQUdTIElDT05WX0xJQlMg
UEtHX0NPTkZJRyBhY19wdF9QS0dfQ09ORklHIE5TU19DRkxBR1MgTlNTX0xJQlMgRU5BQkxFX1NN
SU1FX1RSVUUgRU5BQkxFX1NNSU1FX0ZBTFNFIE1BTlVBTF9OU1BSX0NGTEFHUyBNQU5VQUxfTlNQ
Ul9MSUJTIE1BTlVBTF9OU1NfQ0ZMQUdTIE1BTlVBTF9OU1NfTElCUyBTRU5ETUFJTCBDQU1FTF9M
T0NLX0hFTFBFUl9VU0VSIENBTUVMX0xPQ0tfSEVMUEVSX0dST1VQIEVOQUJMRV9JUHY2X1RSVUUg
RU5BQkxFX0lQdjZfRkFMU0UgRU5BQkxFX05OVFBfVFJVRSBFTkFCTEVfTk5UUF9GQUxTRSBFTkFC
TEVfSU1BUFBfVFJVRSBFTkFCTEVfSU1BUFBfRkFMU0UgUFRIUkVBRF9MSUIgVEhSRUFEU19MSUJT
IFRIUkVBRFNfQ0ZMQUdTIEVOQUJMRV9LUkI1X1RSVUUgRU5BQkxFX0tSQjVfRkFMU0UgS1JCNV9D
RkxBR1MgS1JCNV9MREZMQUdTIEtSQjRfQ0ZMQUdTIEtSQjRfTERGTEFHUyBQVVJJRlkgRU5BQkxF
X1BVUklGWV9UUlVFIEVOQUJMRV9QVVJJRllfRkFMU0UgTERBUF9DRkxBR1MgTERBUF9MSUJTIEVO
QUJMRV9MREFQX1RSVUUgRU5BQkxFX0xEQVBfRkFMU0UgR0xJQl9SRVFVSVJFRCBMSUJCT05PQk9f
UkVRVUlSRUQgT1JCSVRfUkVRVUlSRUQgR0xJQl9DRkxBR1MgR0xJQl9MSUJTIEdMSUJfR0VOTUFS
U0hBTCBHT0JKRUNUX1FVRVJZIEdMSUJfTUtFTlVNUyBXQVJOX0NGTEFHUyBPUkJJVF9DT05GSUcg
T1JCSVRfSURMIE9SQklUX0NGTEFHUyBPUkJJVF9MSUJTIElETF9JTkNMVURFUyBHTk9NRV9GVUxM
X0NGTEFHUyBHTk9NRV9GVUxMX0xJQlMgRV9EQVRBX1NFUlZFUl9DRkxBR1MgRV9EQVRBX1NFUlZF
Ul9MSUJTIEVfREFUQV9TRVJWRVJfVUlfQ0ZMQUdTIEVfREFUQV9TRVJWRVJfVUlfTElCUyBFVk9M
VVRJT05fQUREUkVTU0JPT0tfQ0ZMQUdTIEVWT0xVVElPTl9BRERSRVNTQk9PS19MSUJTIEVWT0xV
VElPTl9DQUxFTkRBUl9DRkxBR1MgRVZPTFVUSU9OX0NBTEVOREFSX0xJQlMgU09VUFRFTVBfQ0ZM
QUdTIFNPVVBURU1QX0xJQlMgTElCU09VUF9SRVFVSVJFRCBMSUJTT1VQIFNPVVBfQ0ZMQUdTIFNP
VVBfTElCUyBDQU1FTF9DRkxBR1MgQ0FNRUxfTElCUyBDQU1FTF9HUk9VUFdJU0VfQ0ZMQUdTIENB
TUVMX0dST1VQV0lTRV9MSUJTIHByaXZkYXRhZGlyIHByaXZpbmNsdWRlZGlyIHByaXZsaWJkaXIg
aWRsZGlyIGltYWdlc2RpciBzZXJ2ZXJkaXIgZXh0ZW5zaW9uZGlyIGdsYWRlZGlyIHdlYXRoZXJk
YXRhZGlyIGNhbWVsX3Byb3ZpZGVyZGlyIElOVEVSRkFDRV9WRVJTSU9OIEVWT19TVUJTVF9TRVJW
RVJfUlVMRSBFVk9fTkFNRV9TRVJWRVJfUlVMRSBHQ09ORlRPT0wgR0NPTkZfU0NIRU1BX0NPTkZJ
R19TT1VSQ0UgR0NPTkZfU0NIRU1BX0ZJTEVfRElSIEdDT05GX1NDSEVNQVNfSU5TVEFMTF9UUlVF
IEdDT05GX1NDSEVNQVNfSU5TVEFMTF9GQUxTRSBIVE1MX0RJUiBFTkFCTEVfR1RLX0RPQ19UUlVF
IEVOQUJMRV9HVEtfRE9DX0ZBTFNFIEdUS19ET0NfVVNFX0xJQlRPT0xfVFJVRSBHVEtfRE9DX1VT
RV9MSUJUT09MX0ZBTFNFIHN1YmRpcnMgTElCT0JKUyBMVExJQk9CSlMnDQorIGFjX3N1YnN0X2Zp
bGVzPSdFVk9fTUFSU0hBTF9SVUxFJw0KIEBAIC0yMzQ2MSw2ICsyMzQ2MSwxMyBAQA0KICAgICAg
RExfTElCPScnDQpAQCAtNDIsMiArNDgsMTIgQEANCiAgDQogIGV4dGVuc2lvbmRpcj0nJHtsaWJk
aXJ9Jy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItJEFQSV9WRVJTSU9OL2V4dGVuc2lvbnMNCitAQCAt
MzE2MzUsOCArMzE2NDEsNyBAQA0KKyANCisgDQorLXN1YmRpcnM9IiRzdWJkaXJzIGxpYmRiL2Rp
c3QiDQorIA0KKyANCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVz
IE1ha2VmaWxlIGV2b2x1dGlvbi1kYXRhLXNlcnZlci5wYyBhZGRyZXNzYm9vay9NYWtlZmlsZSBh
ZGRyZXNzYm9vay9pZGwvTWFrZWZpbGUgYWRkcmVzc2Jvb2svbGliZWJvb2svTWFrZWZpbGUgYWRk
cmVzc2Jvb2svbGliZWJvb2svbGliZWJvb2sucGMgYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay9N
YWtlZmlsZSBhZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL2xpYmVkYXRhLWJvb2sucGMgYWRkcmVz
c2Jvb2svYmFja2VuZHMvTWFrZWZpbGUgYWRkcmVzc2Jvb2svYmFja2VuZHMvZmlsZS9NYWtlZmls
ZSBhZGRyZXNzYm9vay9iYWNrZW5kcy92Y2YvTWFrZWZpbGUgYWRkcmVzc2Jvb2svYmFja2VuZHMv
bGRhcC9NYWtlZmlsZSBhZGRyZXNzYm9vay9iYWNrZW5kcy9ncm91cHdpc2UvTWFrZWZpbGUgYWRk
cmVzc2Jvb2svdGVzdHMvTWFrZWZpbGUgYWRkcmVzc2Jvb2svdGVzdHMvZWJvb2svTWFrZWZpbGUg
YWRkcmVzc2Jvb2svdGVzdHMvdmNhcmQvTWFrZWZpbGUgYXJ0L01ha2VmaWxlIGNhbGVuZGFyL01h
a2VmaWxlIGNhbGVuZGFyL2lkbC9NYWtlZmlsZSBjYWxlbmRhci9saWJlY2FsL01ha2VmaWxlIGNh
bGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYyBjYWxlbmRhci9saWJlZGF0YS1jYWwvTWFrZWZpbGUg
Y2FsZW5kYXIvbGliZWRhdGEtY2FsL2xpYmVkYXRhLWNhbC5wYyBjYWxlbmRhci9iYWNrZW5kcy9N
YWtlZmlsZSBjYWxlbmRhci9iYWNrZW5kcy9maWxlL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRz
L2dyb3Vwd2lzZS9NYWtlZmlsZSBjYWxlbmRhci9iYWNrZW5kcy9odHRwL01ha2VmaWxlIGNhbGVu
ZGFyL2JhY2tlbmRzL2NvbnRhY3RzL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRzL3dlYXRoZXIv
TWFrZWZpbGUgY2FsZW5kYXIvdGVzdHMvTWFrZWZpbGUgY2FsZW5kYXIvdGVzdHMvZWNhbC9NYWtl
ZmlsZSBjYW1lbC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvTWFrZWZpbGUgY2FtZWwvcHJvdmlk
ZXJzL2dyb3Vwd2lzZS9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvaW1hcC9NYWtlZmlsZSBjYW1l
bC9wcm92aWRlcnMvaW1hcHAvTWFrZWZpbGUgY2FtZWwvcHJvdmlkZXJzL2ltYXA0L01ha2VmaWxl
IGNhbWVsL3Byb3ZpZGVycy9sb2NhbC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvbm50cC9NYWtl
ZmlsZSBjYW1lbC9wcm92aWRlcnMvcG9wMy9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvc2VuZG1h
aWwvTWFrZWZpbGUgY2FtZWwvcHJvdmlkZXJzL3NtdHAvTWFrZWZpbGUgY2FtZWwvdGVzdHMvTWFr
ZWZpbGUgY2FtZWwvdGVzdHMvZm9sZGVyL01ha2VmaWxlIGNhbWVsL3Rlc3RzL2xpYi9NYWtlZmls
ZSBjYW1lbC90ZXN0cy9tZXNzYWdlL01ha2VmaWxlIGNhbWVsL3Rlc3RzL21pbWUtZmlsdGVyL01h
a2VmaWxlIGNhbWVsL3Rlc3RzL21pc2MvTWFrZWZpbGUgY2FtZWwvdGVzdHMvc21pbWUvTWFrZWZp
bGUgY2FtZWwvdGVzdHMvc3RyZWFtL01ha2VmaWxlIGNhbWVsL2NhbWVsLnBjIGNhbWVsL2NhbWVs
LXByb3ZpZGVyLnBjIGxpYmRiL01ha2VmaWxlIGxpYmVkYXRhc2VydmVyL01ha2VmaWxlIGxpYmVk
YXRhc2VydmVyL2xpYmVkYXRhc2VydmVyLnBjIGxpYmVkYXRhc2VydmVydWkvTWFrZWZpbGUgbGli
ZWRhdGFzZXJ2ZXJ1aS9saWJlZGF0YXNlcnZlcnVpLnBjIHNlcnZlcnMvTWFrZWZpbGUgc2VydmVy
cy9ncm91cHdpc2UvTWFrZWZpbGUgc2VydmVycy9ncm91cHdpc2UvbGliZWdyb3Vwd2lzZS5wYyBz
ZXJ2ZXJzL2V4Y2hhbmdlL01ha2VmaWxlIHNlcnZlcnMvZXhjaGFuZ2UveG50bG0vTWFrZWZpbGUg
c2VydmVycy9leGNoYW5nZS9saWIvTWFrZWZpbGUgc2VydmVycy9leGNoYW5nZS9zdG9yYWdlL01h
a2VmaWxlIHNlcnZlcnMvZXhjaGFuZ2Uvc3RvcmFnZS9saWJleGNoYW5nZS1zdG9yYWdlLnBjIHNy
Yy9NYWtlZmlsZSBkb2NzL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL01ha2VmaWxlIGRvY3MvcmVm
ZXJlbmNlL2FkZHJlc3Nib29rL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL2FkZHJlc3Nib29rL2xp
YmVib29rL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL2NhbGVuZGFyL01ha2VmaWxlIGRvY3MvcmVm
ZXJlbmNlL2NhbGVuZGFyL2xpYmVjYWwvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvY2FsZW5kYXIv
bGliZWRhdGEtY2FsL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL2xpYmVkYXRhc2VydmVyL01ha2Vm
aWxlIHBvL01ha2VmaWxlLmluIg0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19jb25maWdfZmlsZXM9IiRhY19jb25m
aWdfZmlsZXMgTWFrZWZpbGUgZXZvbHV0aW9uLWRhdGEtc2VydmVyLnBjIGFkZHJlc3Nib29rL01h
a2VmaWxlIGFkZHJlc3Nib29rL2lkbC9NYWtlZmlsZSBhZGRyZXNzYm9vay9saWJlYm9vay9NYWtl
ZmlsZSBhZGRyZXNzYm9vay9saWJlYm9vay9saWJlYm9vay5wYyBhZGRyZXNzYm9vay9saWJlZGF0
YS1ib29rL01ha2VmaWxlIGFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svbGliZWRhdGEtYm9vay5w
YyBhZGRyZXNzYm9vay9iYWNrZW5kcy9NYWtlZmlsZSBhZGRyZXNzYm9vay9iYWNrZW5kcy9maWxl
L01ha2VmaWxlIGFkZHJlc3Nib29rL2JhY2tlbmRzL3ZjZi9NYWtlZmlsZSBhZGRyZXNzYm9vay9i
YWNrZW5kcy9sZGFwL01ha2VmaWxlIGFkZHJlc3Nib29rL2JhY2tlbmRzL2dyb3Vwd2lzZS9NYWtl
ZmlsZSBhZGRyZXNzYm9vay90ZXN0cy9NYWtlZmlsZSBhZGRyZXNzYm9vay90ZXN0cy9lYm9vay9N
YWtlZmlsZSBhZGRyZXNzYm9vay90ZXN0cy92Y2FyZC9NYWtlZmlsZSBhcnQvTWFrZWZpbGUgY2Fs
ZW5kYXIvTWFrZWZpbGUgY2FsZW5kYXIvaWRsL01ha2VmaWxlIGNhbGVuZGFyL2xpYmVjYWwvTWFr
ZWZpbGUgY2FsZW5kYXIvbGliZWNhbC9saWJlY2FsLnBjIGNhbGVuZGFyL2xpYmVkYXRhLWNhbC9N
YWtlZmlsZSBjYWxlbmRhci9saWJlZGF0YS1jYWwvbGliZWRhdGEtY2FsLnBjIGNhbGVuZGFyL2Jh
Y2tlbmRzL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUgY2FsZW5kYXIv
YmFja2VuZHMvZ3JvdXB3aXNlL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRzL2h0dHAvTWFrZWZp
bGUgY2FsZW5kYXIvYmFja2VuZHMvY29udGFjdHMvTWFrZWZpbGUgY2FsZW5kYXIvYmFja2VuZHMv
d2VhdGhlci9NYWtlZmlsZSBjYWxlbmRhci90ZXN0cy9NYWtlZmlsZSBjYWxlbmRhci90ZXN0cy9l
Y2FsL01ha2VmaWxlIGNhbWVsL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9NYWtlZmlsZSBjYW1l
bC9wcm92aWRlcnMvZ3JvdXB3aXNlL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9pbWFwL01ha2Vm
aWxlIGNhbWVsL3Byb3ZpZGVycy9pbWFwcC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvaW1hcDQv
TWFrZWZpbGUgY2FtZWwvcHJvdmlkZXJzL2xvY2FsL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9u
bnRwL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9wb3AzL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVy
cy9zZW5kbWFpbC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvc210cC9NYWtlZmlsZSBjYW1lbC90
ZXN0cy9NYWtlZmlsZSBjYW1lbC90ZXN0cy9mb2xkZXIvTWFrZWZpbGUgY2FtZWwvdGVzdHMvbGli
L01ha2VmaWxlIGNhbWVsL3Rlc3RzL21lc3NhZ2UvTWFrZWZpbGUgY2FtZWwvdGVzdHMvbWltZS1m
aWx0ZXIvTWFrZWZpbGUgY2FtZWwvdGVzdHMvbWlzYy9NYWtlZmlsZSBjYW1lbC90ZXN0cy9zbWlt
ZS9NYWtlZmlsZSBjYW1lbC90ZXN0cy9zdHJlYW0vTWFrZWZpbGUgY2FtZWwvY2FtZWwucGMgY2Ft
ZWwvY2FtZWwtcHJvdmlkZXIucGMgbGliZWRhdGFzZXJ2ZXIvTWFrZWZpbGUgbGliZWRhdGFzZXJ2
ZXIvbGliZWRhdGFzZXJ2ZXIucGMgbGliZWRhdGFzZXJ2ZXJ1aS9NYWtlZmlsZSBsaWJlZGF0YXNl
cnZlcnVpL2xpYmVkYXRhc2VydmVydWkucGMgc2VydmVycy9NYWtlZmlsZSBzZXJ2ZXJzL2dyb3Vw
d2lzZS9NYWtlZmlsZSBzZXJ2ZXJzL2dyb3Vwd2lzZS9saWJlZ3JvdXB3aXNlLnBjIHNlcnZlcnMv
ZXhjaGFuZ2UvTWFrZWZpbGUgc2VydmVycy9leGNoYW5nZS94bnRsbS9NYWtlZmlsZSBzZXJ2ZXJz
L2V4Y2hhbmdlL2xpYi9NYWtlZmlsZSBzZXJ2ZXJzL2V4Y2hhbmdlL3N0b3JhZ2UvTWFrZWZpbGUg
c2VydmVycy9leGNoYW5nZS9zdG9yYWdlL2xpYmV4Y2hhbmdlLXN0b3JhZ2UucGMgc3JjL01ha2Vm
aWxlIGRvY3MvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2Uv
YWRkcmVzc2Jvb2svTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvYWRkcmVzc2Jvb2svbGliZWJvb2sv
TWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvY2FsZW5kYXIvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2Uv
Y2FsZW5kYXIvbGliZWNhbC9NYWtlZmlsZSBkb2NzL3JlZmVyZW5jZS9jYWxlbmRhci9saWJlZGF0
YS1jYWwvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvbGliZWRhdGFzZXJ2ZXIvTWFrZWZpbGUgcG8v
TWFrZWZpbGUuaW4iDQorIGNhdCA+Y29uZmNhY2hlIDw8XF9BQ0VPRg0KKyAjIFRoaXMgZmlsZSBp
cyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUNCklu
ZGV4OiBmaWxlcy9wYXRjaC1vZmZpY2FsLXNsZWVweWNhdA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6
IGZpbGVzL3BhdGNoLW9mZmljYWwtc2xlZXB5Y2F0DQpkaWZmIC1OIGZpbGVzL3BhdGNoLW9mZmlj
YWwtc2xlZXB5Y2F0DQotLS0gZmlsZXMvcGF0Y2gtb2ZmaWNhbC1zbGVlcHljYXQJMjAgTWFyIDIw
MDUgMTM6MTQ6MDMgLTAwMDAJMS4xDQorKysgL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAg
LTAwMDANCkBAIC0xLDQ4MCArMCwwIEBADQotLS0tIGxpYmRiL2ZpbGVvcHMvZm9wX3V0aWwuYy5v
cmlnCVRodSBOb3YgMjAgMjM6MTM6MzAgMjAwMw0KLSsrKyBsaWJkYi9maWxlb3BzL2ZvcF91dGls
LmMJRnJpIE1hciAxOCAyMDozMToxMCAyMDA1DQotQEAgLTQwLDcgKzQwLDcgQEANCi0gCXVfaW50
MzJfdCBfX2xvY2t2YWw7CQkJCQkJXA0KLSAJCQkJCQkJCQlcDQotIAlpZiAoTE9DS0lOR19PTigo
RU5WKSkpIHsJCQkJCVwNCi0tCQlfX2xvY2t2YWwgPSAwOwkJCQkJCVwNCi0rCQlfX2xvY2t2YWwg
PSAxOwkJCQkJCVwNCi0gCQlfX2RidC5kYXRhID0gJl9fbG9ja3ZhbDsJCQkJXA0KLSAJCV9fZGJ0
LnNpemUgPSBzaXplb2YoX19sb2NrdmFsKTsJCQkJXA0KLSAJCWlmICgocmV0ID0gKEVOViktPmxv
Y2tfZ2V0KChFTlYpLCAoSUQpLAkJCVwNCi0tLS0gbGliZGIvZGJpbmMvbXAuaC5vcmlnCVRodSBO
b3YgMjAgMjM6MTM6MTcgMjAwMw0KLSsrKyBsaWJkYi9kYmluYy9tcC5oCUZyaSBNYXIgMTggMjA6
MzE6MTQgMjAwNQ0KLUBAIC0xNDksNiArMTQ5LDEzIEBADQotIAkgKiByZWdpb24gbG9jaykuDQot
IAkgKi8NCi0gCURCX01QT09MX1NUQVQgc3RhdDsJCS8qIFBlci1jYWNoZSBtcG9vbCBzdGF0aXN0
aWNzLiAqLw0KLSsgDQotKwkgLyoNCi0rCSAgKiBXZSB0cmFjayBwYWdlIHB1dHMgc28gdGhhdCB3
ZSBjYW4gZGVjaWRlIHdoZW4gYWxsb2NhdGlvbiBpcyBuZXZlcg0KLSsJICAqIGdvaW5nIHRvIHN1
Y2NlZWQuICBXZSBkb24ndCBsb2NrIHRoZSBmaWVsZCwgYWxsIHdlIGNhcmUgYWJvdXQgaXMNCi0r
CSAgKiBpZiBpdCBjaGFuZ2VzLg0KLSsJICAqLw0KLSsJIHVfaW50MzJfdCAgcHV0X2NvdW50ZXI7
ICAgICAgICAgICAgICAgIC8qIENvdW50IG9mIHBhZ2UgcHV0IGNhbGxzLiAqLw0KLSB9Ow0KLSAN
Ci0gc3RydWN0IF9fZGJfbXBvb2xfaGFzaCB7DQotLS0tIGxpYmRiL21wL21wX2ZwdXQuYy5vcmln
CVRodSBOb3YgMjAgMjM6MTM6MzYgMjAwMw0KLSsrKyBsaWJkYi9tcC9tcF9mcHV0LmMJRnJpIE1h
ciAxOCAyMDozMToxNCAyMDA1DQotQEAgLTE5LDYgKzE5LDggQEANCi0gI2luY2x1ZGUgImRiaW5j
L2RiX3NoYXNoLmgiDQotICNpbmNsdWRlICJkYmluYy9tcC5oIg0KLSANCi0rc3RhdGljIHZvaWQg
X19tZW1wX3Jlc2V0X2xydSBfX1AoKERCX0VOViAqLCBSRUdJTkZPICopKTsNCi0rDQotIC8qDQot
ICAqIF9fbWVtcF9mcHV0IC0tDQotICAqCU1wb29sIGZpbGUgcHV0IGZ1bmN0aW9uLg0KLUBAIC0x
OTgsNSArMjAwLDU2IEBADQotIA0KLSAJTVVURVhfVU5MT0NLKGRiZW52LCAmaHAtPmhhc2hfbXV0
ZXgpOw0KLSANCi0rCS8qDQotKwkgKiBPbiBldmVyeSBidWZmZXIgcHV0IHdlIHVwZGF0ZSB0aGUg
YnVmZmVyIGdlbmVyYXRpb24gbnVtYmVyIGFuZCBjaGVjaw0KLSsJICogZm9yIHdyYXBhcm91bmQu
DQotKwkgKi8NCi0rCWlmICgrK2NfbXAtPmxydV9jb3VudCA9PSBVSU5UMzJfVF9NQVgpDQotKwkJ
X19tZW1wX3Jlc2V0X2xydShkYmVudiwgZGJtcC0+cmVnaW5mbyk7DQotKw0KLSAJcmV0dXJuICgw
KTsNCi0rfQ0KLSsNCi0rLyoNCi0rICogX19tZW1wX3Jlc2V0X2xydSAtLQ0KLSsgKglSZXNldCB0
aGUgY2FjaGUgTFJVIGNvdW50ZXIuDQotKyAqLw0KLStzdGF0aWMgdm9pZA0KLStfX21lbXBfcmVz
ZXRfbHJ1KGRiZW52LCBtZW1yZWcpDQotKwlEQl9FTlYgKmRiZW52Ow0KLSsJUkVHSU5GTyAqbWVt
cmVnOw0KLSt7DQotKwlCSCAqYmhwOw0KLSsJREJfTVBPT0xfSEFTSCAqaHA7DQotKwlNUE9PTCAq
Y19tcDsNCi0rCWludCBidWNrZXQ7DQotKw0KLSsJY19tcCA9IG1lbXJlZy0+cHJpbWFyeTsNCi0r
DQotKwkvKg0KLSsJICogVXBkYXRlIHRoZSBjb3VudGVyIHNvIGFsbCBmdXR1cmUgYWxsb2NhdGlv
bnMgd2lsbCBzdGFydCBhdCB0aGUNCi0rCSAqIGJvdHRvbS4NCi0rCSAqLw0KLSsJY19tcC0+bHJ1
X2NvdW50IC09IE1QT09MX0JBU0VfREVDUkVNRU5UOw0KLSsNCi0rCS8qIEFkanVzdCB0aGUgcHJp
b3JpdHkgb2YgZXZlcnkgYnVmZmVyIGluIHRoZSBzeXN0ZW0uICovDQotKwlmb3IgKGhwID0gUl9B
RERSKG1lbXJlZywgY19tcC0+aHRhYiksDQotKwkgICAgYnVja2V0ID0gMDsgYnVja2V0IDwgY19t
cC0+aHRhYl9idWNrZXRzOyArK2hwLCArK2J1Y2tldCkgew0KLSsJCS8qDQotKwkJICogU2tpcCBl
bXB0eSBidWNrZXRzLg0KLSsJCSAqDQotKwkJICogV2UgY2FuIGNoZWNrIGZvciBlbXB0eSBidWNr
ZXRzIGJlZm9yZSBsb2NraW5nIGFzIHdlDQotKwkJICogb25seSBjYXJlIGlmIHRoZSBwb2ludGVy
IGlzIHplcm8gb3Igbm9uLXplcm8uDQotKwkJICovDQotKwkJaWYgKFNIX1RBSUxRX0ZJUlNUKCZo
cC0+aGFzaF9idWNrZXQsIF9fYmgpID09IE5VTEwpDQotKwkJCWNvbnRpbnVlOw0KLSsNCi0rCQlN
VVRFWF9MT0NLKGRiZW52LCAmaHAtPmhhc2hfbXV0ZXgpOw0KLSsJCWZvciAoYmhwID0gU0hfVEFJ
TFFfRklSU1QoJmhwLT5oYXNoX2J1Y2tldCwgX19iaCk7DQotKwkJICAgIGJocCAhPSBOVUxMOyBi
aHAgPSBTSF9UQUlMUV9ORVhUKGJocCwgaHEsIF9fYmgpKQ0KLSsJCQlpZiAoYmhwLT5wcmlvcml0
eSAhPSBVSU5UMzJfVF9NQVggJiYNCi0rCQkJICAgIGJocC0+cHJpb3JpdHkgPiBNUE9PTF9CQVNF
X0RFQ1JFTUVOVCkNCi0rCQkJCWJocC0+cHJpb3JpdHkgLT0gTVBPT0xfQkFTRV9ERUNSRU1FTlQ7
DQotKwkJTVVURVhfVU5MT0NLKGRiZW52LCAmaHAtPmhhc2hfbXV0ZXgpOw0KLSsJfQ0KLSB9DQot
LS0tIGxpYmRiL21wL21wX2FsbG9jLmMub3JpZwlUaHUgTm92IDIwIDIzOjEzOjM2IDIwMDMNCi0r
KysgbGliZGIvbXAvbXBfYWxsb2MuYwlGcmkgTWFyIDE4IDIwOjMxOjE0IDIwMDUNCi1AQCAtMjUs
NyArMjUsNiBAQA0KLSB9IEhTOw0KLSANCi0gc3RhdGljIHZvaWQgX19tZW1wX2JhZF9idWZmZXIg
X19QKChEQl9NUE9PTF9IQVNIICopKTsNCi0tc3RhdGljIHZvaWQgX19tZW1wX3Jlc2V0X2xydSBf
X1AoKERCX0VOViAqLCBSRUdJTkZPICosIE1QT09MICopKTsNCi0gDQotIC8qDQotICAqIF9fbWVt
cF9hbGxvYyAtLQ0KLUBAIC01MCw4ICs0OSw5IEBADQotIAlNUE9PTCAqY19tcDsNCi0gCU1QT09M
RklMRSAqYmhfbWZwOw0KLSAJc2l6ZV90IGZyZWVkX3NwYWNlOw0KLS0JdV9pbnQzMl90IGJ1Y2tl
dHMsIGJ1ZmZlcnMsIGhpZ2hfcHJpb3JpdHksIG1heF9uYSwgcHJpb3JpdHk7DQotLQlpbnQgYWdn
cmVzc2l2ZSwgcmV0Ow0KLSsJdV9pbnQzMl90IGJ1Y2tldHMsIGJ1ZmZlcnMsIGhpZ2hfcHJpb3Jp
dHksIHByaW9yaXR5LCBwdXRfY291bnRlcjsNCi0rCXVfaW50MzJfdCB0b3RhbF9idWNrZXRzOw0K
LSsJaW50IGFnZ3Jlc3NpdmUsIGdpdmV1cCwgcmV0Ow0KLSAJdm9pZCAqcDsNCi0gDQotIAlkYmVu
diA9IGRibXAtPmRiZW52Ow0KLUBAIC01OSwxOCArNTksMTMgQEANCi0gCWRiaHQgPSBSX0FERFIo
bWVtcmVnLCBjX21wLT5odGFiKTsNCi0gCWhwX2VuZCA9ICZkYmh0W2NfbXAtPmh0YWJfYnVja2V0
c107DQotIA0KLS0JYnVja2V0cyA9IGJ1ZmZlcnMgPSAwOw0KLS0JYWdncmVzc2l2ZSA9IDA7DQot
KwlidWNrZXRzID0gYnVmZmVycyA9IHB1dF9jb3VudGVyID0gdG90YWxfYnVja2V0cyA9IDA7DQot
KwlhZ2dyZXNzaXZlID0gZ2l2ZXVwID0gMDsNCi0rCWhwX3RtcCA9IE5VTEw7DQotIA0KLSAJY19t
cC0+c3RhdC5zdF9hbGxvYysrOw0KLSANCi0gCS8qDQotLQkgKiBHZXQgYWdncmVzc2l2ZSBpZiB3
ZSd2ZSB0cmllZCB0byBmbHVzaCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGFzIGFyZQ0KLS0JICogaW4g
dGhlIHN5c3RlbSB3aXRob3V0IGZpbmRpbmcgc3BhY2UuDQotLQkgKi8NCi0tCW1heF9uYSA9IDUg
KiBjX21wLT5odGFiX2J1Y2tldHM7DQotLQ0KLS0JLyoNCi0gCSAqIElmIHdlJ3JlIGFsbG9jYXRp
bmcgYSBidWZmZXIsIGFuZCB0aGUgb25lIHdlJ3JlIGRpc2NhcmRpbmcgaXMgdGhlDQotIAkgKiBz
YW1lIHNpemUsIHdlIGRvbid0IHdhbnQgdG8gd2FzdGUgdGhlIHRpbWUgdG8gcmUtaW50ZWdyYXRl
IGl0IGludG8NCi0gCSAqIHRoZSBzaGFyZWQgbWVtb3J5IGZyZWUgbGlzdC4gIElmIHRoZSBEQl9N
UE9PTEZJTEUgYXJndW1lbnQgaXNuJ3QNCi1AQCAtODEsMTkgKzc2LDEwIEBADQotIAkJbGVuID0g
KHNpemVvZihCSCkgLSBzaXplb2YodV9pbnQ4X3QpKSArIG1mcC0+c3RhdC5zdF9wYWdlc2l6ZTsN
Ci0gDQotIAlSX0xPQ0soZGJlbnYsIG1lbXJlZyk7DQotLQ0KLS0JLyoNCi0tCSAqIE9uIGV2ZXJ5
IGJ1ZmZlciBhbGxvY2F0aW9uIHdlIHVwZGF0ZSB0aGUgYnVmZmVyIGdlbmVyYXRpb24gbnVtYmVy
DQotLQkgKiBhbmQgY2hlY2sgZm9yIHdyYXBhcm91bmQuDQotLQkgKi8NCi0tCWlmICgrK2NfbXAt
PmxydV9jb3VudCA9PSBVSU5UMzJfVF9NQVgpDQotLQkJX19tZW1wX3Jlc2V0X2xydShkYmVudiwg
bWVtcmVnLCBjX21wKTsNCi0tDQotIAkvKg0KLSAJICogQW55dGhpbmcgbmV3ZXIgdGhhbiAxLzEw
dGggb2YgdGhlIGJ1ZmZlciBwb29sIGlzIGlnbm9yZWQgZHVyaW5nDQotIAkgKiBhbGxvY2F0aW9u
ICh1bmxlc3MgYWxsb2NhdGlvbiBzdGFydHMgZmFpbGluZykuDQotIAkgKi8NCi0tCURCX0FTU0VS
VChjX21wLT5scnVfY291bnQgPiBjX21wLT5zdGF0LnN0X3BhZ2VzIC8gMTApOw0KLSAJaGlnaF9w
cmlvcml0eSA9IGNfbXAtPmxydV9jb3VudCAtIGNfbXAtPnN0YXQuc3RfcGFnZXMgLyAxMDsNCi0g
DQotIAkvKg0KLUBAIC0xMjAsMTAgKzEwNiwxMSBAQA0KLSAJCSAqIFdlJ3JlIG5vdCBob2xkaW5n
IHRoZSByZWdpb24gbG9ja2VkIGhlcmUsIHRoZXNlIHN0YXRpc3RpY3MNCi0gCQkgKiBjYW4ndCBi
ZSB0cnVzdGVkLg0KLSAJCSAqLw0KLS0JCWlmIChidWNrZXRzICE9IDApIHsNCi0tCQkJaWYgKGJ1
Y2tldHMgPiBjX21wLT5zdGF0LnN0X2FsbG9jX21heF9idWNrZXRzKQ0KLS0JCQkJY19tcC0+c3Rh
dC5zdF9hbGxvY19tYXhfYnVja2V0cyA9IGJ1Y2tldHM7DQotLQkJCWNfbXAtPnN0YXQuc3RfYWxs
b2NfYnVja2V0cyArPSBidWNrZXRzOw0KLSsJCXRvdGFsX2J1Y2tldHMgKz0gYnVja2V0czsNCi0r
CQlpZiAodG90YWxfYnVja2V0cyAhPSAwKSB7DQotKwkJCWlmICh0b3RhbF9idWNrZXRzID4gY19t
cC0+c3RhdC5zdF9hbGxvY19tYXhfYnVja2V0cykNCi0rCQkJCWNfbXAtPnN0YXQuc3RfYWxsb2Nf
bWF4X2J1Y2tldHMgPSB0b3RhbF9idWNrZXRzOw0KLSsJCQljX21wLT5zdGF0LnN0X2FsbG9jX2J1
Y2tldHMgKz0gdG90YWxfYnVja2V0czsNCi0gCQl9DQotIAkJaWYgKGJ1ZmZlcnMgIT0gMCkgew0K
LSAJCQlpZiAoYnVmZmVycyA+IGNfbXAtPnN0YXQuc3RfYWxsb2NfbWF4X3BhZ2VzKQ0KLUBAIC0x
MzEsNiArMTE4LDEyIEBADQotIAkJCWNfbXAtPnN0YXQuc3RfYWxsb2NfcGFnZXMgKz0gYnVmZmVy
czsNCi0gCQl9DQotIAkJcmV0dXJuICgwKTsNCi0rCX0gZWxzZSBpZiAoZ2l2ZXVwIHx8IGNfbXAt
PnN0YXQuc3RfcGFnZXMgPT0gMCkgew0KLSsJCVJfVU5MT0NLKGRiZW52LCBtZW1yZWcpOw0KLSsN
Ci0rCQlfX2RiX2VycihkYmVudiwNCi0rCQkgICAgInVuYWJsZSB0byBhbGxvY2F0ZSBzcGFjZSBm
cm9tIHRoZSBidWZmZXIgY2FjaGUiKTsNCi0rCQlyZXR1cm4gKHJldCk7DQotIAl9DQotIA0KLSAJ
LyoNCi1AQCAtMTM4LDI2ICsxMzEsMjQgQEANCi0gCSAqIHdlIG5lZWQuICBSZXNldCBvdXIgZnJl
ZS1zcGFjZSBjb3VudGVyLg0KLSAJICovDQotIAlmcmVlZF9zcGFjZSA9IDA7DQotKwl0b3RhbF9i
dWNrZXRzICs9IGJ1Y2tldHM7DQotKwlidWNrZXRzID0gMDsNCi0gDQotIAkvKg0KLSAJICogV2Fs
ayB0aGUgaGFzaCBidWNrZXRzIGFuZCBmaW5kIHRoZSBuZXh0IHR3byB3aXRoIHBvdGVudGlhbGx5
IHVzZWZ1bA0KLSAJICogYnVmZmVycy4gIEZyZWUgdGhlIGJ1ZmZlciB3aXRoIHRoZSBsb3dlc3Qg
cHJpb3JpdHkgZnJvbSB0aGUgYnVja2V0cycNCi0gCSAqIGNoYWlucy4NCi0gCSAqLw0KLS0JZm9y
IChocF90bXAgPSBOVUxMOzspIHsNCi0rCWZvciAoOzspIHsNCi0rCQkvKiBBbGwgcGFnZXMgaGF2
ZSBiZWVuIGZyZWVkLCBtYWtlIG9uZSBsYXN0IHRyeSAqLw0KLSsJCWlmIChjX21wLT5zdGF0LnN0
X3BhZ2VzID09IDApDQotKwkJCWdvdG8gYWxsb2M7DQotKw0KLSAJCS8qIENoZWNrIGZvciB3cmFw
IGFyb3VuZC4gKi8NCi0gCQlocCA9ICZkYmh0W2NfbXAtPmxhc3RfY2hlY2tlZCsrXTsNCi0gCQlp
ZiAoaHAgPj0gaHBfZW5kKSB7DQotIAkJCWNfbXAtPmxhc3RfY2hlY2tlZCA9IDA7DQotLQ0KLS0J
CQkvKg0KLS0JCQkgKiBJZiB3ZSd2ZSBnb25lIHRocm91Z2ggYWxsIG9mIHRoZSBoYXNoIGJ1Y2tl
dHMsIHRyeQ0KLS0JCQkgKiBhbiBhbGxvY2F0aW9uLiAgSWYgdGhlIGNhY2hlIGlzIHNtYWxsLCB0
aGUgb2xkIHBhZ2UNCi0tCQkJICogc2l6ZSBpcyBzbWFsbCwgYW5kIHRoZSBuZXcgcGFnZSBzaXpl
IGlzIGxhcmdlLCB3ZQ0KLS0JCQkgKiBtaWdodCBoYXZlIGZyZWVkIGVub3VnaCBtZW1vcnkgKGJ1
dCBub3QgMyB0aW1lcyB0aGUNCi0tCQkJICogbWVtb3J5KS4NCi0tCQkJICovDQotLQkJCWdvdG8g
YWxsb2M7DQotKwkJCWhwID0gJmRiaHRbY19tcC0+bGFzdF9jaGVja2VkKytdOw0KLSAJCX0NCi0g
DQotIAkJLyoNCi1AQCAtMTcyLDM5ICsxNjMsNTkgQEANCi0gCQkvKg0KLSAJCSAqIFRoZSBmYWls
dXJlIG1vZGUgaXMgd2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgYnVmZmVycyB3ZSBjYW4ndA0KLSAJ
CSAqIHdyaXRlIG9yIHRoZXJlJ3Mgbm90IGVub3VnaCBtZW1vcnkgaW4gdGhlIHN5c3RlbS4gIFdl
IGRvbid0DQotLQkJICogaGF2ZSBhIG1ldHJpYyBmb3IgZGVjaWRpbmcgaWYgYWxsb2NhdGlvbiBo
YXMgbm8gcG9zc2libGUgd2F5DQotLQkJICogdG8gc3VjY2VlZCwgc28gd2UgZG9uJ3QgZXZlciBm
YWlsLCB3ZSBhc3N1bWUgbWVtb3J5IHdpbGwgYmUNCi0tCQkgKiBhdmFpbGFibGUgaWYgd2Ugd2Fp
dCBsb25nIGVub3VnaC4NCi0rCQkgKiBoYXZlIGEgd2F5IHRvIGtub3cgdGhhdCBhbGxvY2F0aW9u
IGhhcyBubyB3YXkgdG8gc3VjY2VlZC4NCi0rCQkgKiBXZSBmYWlsIGlmIHRoZXJlIHdlcmUgbm8g
cGFnZXMgcmV0dXJuZWQgdG8gdGhlIGNhY2hlIGFmdGVyDQotKwkJICogd2UndmUgYmVlbiB0cnlp
bmcgZm9yIGEgcmVsYXRpdmVseSBsb25nIHRpbWUuDQotIAkJICoNCi0tCQkgKiBHZXQgYWdncmVz
c2l2ZSBpZiB3ZSd2ZSB0cmllZCB0byBmbHVzaCA1IHRpbWVzIHRoZSBudW1iZXIgb2YNCi0tCQkg
KiBoYXNoIGJ1Y2tldHMgYXMgYXJlIGluIHRoZSBzeXN0ZW0gLS0gaXQncyBwb3NzaWJsZSB3ZSBo
YXZlDQotLQkJICogYmVlbiByZXBlYXRlZGx5IHRyeWluZyB0byBmbHVzaCB0aGUgc2FtZSBidWZm
ZXJzLCBhbHRob3VnaA0KLS0JCSAqIGl0J3MgdW5saWtlbHkuICBBZ2dyZXNzaXZlIG1lYW5zOg0K
LSsJCSAqIEdldCBhZ2dyZXNzaXZlIGlmIHdlJ3ZlIHRyaWVkIHRvIGZsdXNoIHRoZSBudW1iZXIg
b2YgaGFzaA0KLSsJCSAqIGJ1Y2tldHMgYXMgYXJlIGluIHRoZSBzeXN0ZW0gYW5kIGhhdmUgbm90
IGZvdW5kIGFueSBtb3JlDQotKwkJICogc3BhY2UuICBBZ2dyZXNzaXZlIG1lYW5zOg0KLSAJCSAq
DQotIAkJICogYTogc2V0IGEgZmxhZyB0byBhdHRlbXB0IHRvIGZsdXNoIGhpZ2ggcHJpb3JpdHkg
YnVmZmVycyBhcw0KLSAJCSAqICAgIHdlbGwgYXMgb3RoZXIgYnVmZmVycy4NCi0gCQkgKiBiOiBz
eW5jIHRoZSBtcG9vbCB0byBmb3JjZSBvdXQgcXVldWUgZXh0ZW50IHBhZ2VzLiAgV2hpbGUgd2UN
Ci0gCQkgKiAgICBtaWdodCBub3QgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHdoYXQgd2Ugd2FudCBh
bmQgZmx1c2hpbmcNCi0gCQkgKiAgICBpcyBleHBlbnNpdmUsIHdoeSBub3Q/DQotLQkJICogYzog
c2xlZXAgZm9yIGEgc2Vjb25kIC0tIGhvcGVmdWxseSBzb21lb25lIGVsc2Ugd2lsbCBydW4gYW5k
DQotLQkJICogICAgZnJlZSB1cCBzb21lIG1lbW9yeS4gIFRyeSB0byBhbGxvY2F0ZSBtZW1vcnkg
dG9vLCBpbiBjYXNlDQotLQkJICogICAgdGhlIG90aGVyIHRocmVhZCByZXR1cm5zIGl0cyBtZW1v
cnkgdG8gdGhlIHJlZ2lvbi4NCi0tCQkgKiBkOiBsb29rIGF0IGEgYnVmZmVyIGluIGV2ZXJ5IGhh
c2ggYnVja2V0IHJhdGhlciB0aGFuIGNob29zZQ0KLSsJCSAqIGM6IGxvb2sgYXQgYSBidWZmZXIg
aW4gZXZlcnkgaGFzaCBidWNrZXQgcmF0aGVyIHRoYW4gY2hvb3NlDQotIAkJICogICAgdGhlIG1v
cmUgcHJlZmVyYWJsZSBvZiB0d28uDQotKwkJICogZDogc3RhcnQgdG8gdGhpbmsgYWJvdXQgZ2l2
aW5nIHVwLg0KLSsJCSAqDQotKwkJICogSWYgd2UgZ2V0IGhlcmUgdHdpY2UsIHNsZWVwIGZvciBh
IHNlY29uZCwgaG9wZWZ1bGx5IHNvbWVvbmUNCi0rCQkgKiBlbHNlIHdpbGwgcnVuIGFuZCBmcmVl
IHVwIHNvbWUgbWVtb3J5Lg0KLSsJCSAqDQotKwkJICogQWx3YXlzIHRyeSB0byBhbGxvY2F0ZSBt
ZW1vcnkgdG9vLCBpbiBjYXNlIHNvbWUgb3RoZXIgdGhyZWFkDQotKwkJICogcmV0dXJucyBpdHMg
bWVtb3J5IHRvIHRoZSByZWdpb24uDQotIAkJICoNCi0gCQkgKiAhISENCi0gCQkgKiBUaGlzIHRl
c3QgaWdub3JlcyBwYXRob2xvZ2ljYWwgY2FzZXMgbGlrZSBubyBidWZmZXJzIGluIHRoZQ0KLSAJ
CSAqIHN5c3RlbSAtLSB0aGF0IHNob3VsZG4ndCBiZSBwb3NzaWJsZS4NCi0gCQkgKi8NCi0tCQlp
ZiAoKCsrYnVja2V0cyAlIG1heF9uYSkgPT0gMCkgew0KLS0JCQlhZ2dyZXNzaXZlID0gMTsNCi0t
DQotKwkJaWYgKCgrK2J1Y2tldHMgJSBjX21wLT5odGFiX2J1Y2tldHMpID09IDApIHsNCi0rCQkJ
aWYgKGZyZWVkX3NwYWNlID4gMCkNCi0rCQkJCWdvdG8gYWxsb2M7DQotIAkJCVJfVU5MT0NLKGRi
ZW52LCBtZW1yZWcpOw0KLSANCi0tCQkJKHZvaWQpX19tZW1wX3N5bmNfaW50KA0KLS0JCQkgICAg
ZGJlbnYsIE5VTEwsIDAsIERCX1NZTkNfQUxMT0MsIE5VTEwpOw0KLS0NCi0tCQkJKHZvaWQpX19v
c19zbGVlcChkYmVudiwgMSwgMCk7DQotKwkJCXN3aXRjaCAoKythZ2dyZXNzaXZlKSB7DQotKwkJ
CWNhc2UgMToNCi0rCQkJCWJyZWFrOw0KLSsJCQljYXNlIDI6DQotKwkJCQlwdXRfY291bnRlciA9
IGNfbXAtPnB1dF9jb3VudGVyOw0KLSsJCQkJLyogRkFMTFRIUk9VR0ggKi8NCi0rCQkJY2FzZSAz
Og0KLSsJCQljYXNlIDQ6DQotKwkJCWNhc2UgNToNCi0rCQkJY2FzZSA2Og0KLSsJCQkJKHZvaWQp
X19tZW1wX3N5bmNfaW50KA0KLSsJCQkJICAgIGRiZW52LCBOVUxMLCAwLCBEQl9TWU5DX0FMTE9D
LCBOVUxMKTsNCi0rDQotKwkJCQkodm9pZClfX29zX3NsZWVwKGRiZW52LCAxLCAwKTsNCi0rCQkJ
CWJyZWFrOw0KLSsJCQlkZWZhdWx0Og0KLSsJCQkJYWdncmVzc2l2ZSA9IDE7DQotKwkJCQlpZiAo
cHV0X2NvdW50ZXIgPT0gY19tcC0+cHV0X2NvdW50ZXIpDQotKwkJCQkJZ2l2ZXVwID0gMTsNCi0r
CQkJCWJyZWFrOw0KLSsJCQl9DQotIA0KLSAJCQlSX0xPQ0soZGJlbnYsIG1lbXJlZyk7DQotIAkJ
CWdvdG8gYWxsb2M7DQotQEAgLTI3Nyw3ICsyODgsOCBAQA0KLSAJCSAqIHRocmVhZCBtYXkgaGF2
ZSBhY3F1aXJlZCB0aGlzIGJ1ZmZlciBhbmQgaW5jcmVtZW50ZWQgdGhlIHJlZg0KLSAJCSAqIGNv
dW50IGFmdGVyIHdlIHdyb3RlIGl0LCBpbiB3aGljaCBjYXNlIHdlIGNhbid0IGhhdmUgaXQuDQot
IAkJICoNCi0tCQkgKiBJZiB0aGVyZSdzIGEgd3JpdGUgZXJyb3IsIGF2b2lkIHNlbGVjdGluZyB0
aGlzIGJ1ZmZlciBhZ2Fpbg0KLSsJCSAqIElmIHRoZXJlJ3MgYSB3cml0ZSBlcnJvciBhbmQgd2Un
cmUgaGF2aW5nIHByb2JsZW1zIGZpbmRpbmcNCi0rCQkgKiBzb21ldGhpbmcgdG8gYWxsb2NhdGUs
IGF2b2lkIHNlbGVjdGluZyB0aGlzIGJ1ZmZlciBhZ2Fpbg0KLSAJCSAqIGJ5IG1ha2luZyBpdCB0
aGUgYnVja2V0J3MgbGVhc3QtZGVzaXJhYmxlIGJ1ZmZlci4NCi0gCQkgKi8NCi0gCQlpZiAocmV0
ICE9IDAgfHwgYmhwLT5yZWYgIT0gMCkgew0KLUBAIC0zMDEsNiArMzEzLDggQEANCi0gDQotIAkJ
ZnJlZWRfc3BhY2UgKz0gX19kYl9zaHNpemVvZihiaHApOw0KLSAJCV9fbWVtcF9iaGZyZWUoZGJt
cCwgaHAsIGJocCwgMSk7DQotKwkJaWYgKGFnZ3Jlc3NpdmUgPiAxKQ0KLSsJCQlhZ2dyZXNzaXZl
ID0gMTsNCi0gDQotIAkJLyoNCi0gCQkgKiBVbmxvY2sgdGhpcyBoYXNoIGJ1Y2tldCBhbmQgcmUt
YWNxdWlyZSB0aGUgcmVnaW9uIGxvY2suIElmDQotQEAgLTM2MCw1NCArMzc0LDYgQEANCi0gDQot
IAkvKiBSZXNldCB0aGUgaGFzaCBidWNrZXQncyBwcmlvcml0eS4gKi8NCi0gCWhwLT5oYXNoX3By
aW9yaXR5ID0gU0hfVEFJTFFfRklSU1QoJmhwLT5oYXNoX2J1Y2tldCwgX19iaCktPnByaW9yaXR5
Ow0KLS19DQotLQ0KLS0vKg0KLS0gKiBfX21lbXBfcmVzZXRfbHJ1IC0tDQotLSAqCVJlc2V0IHRo
ZSBjYWNoZSBMUlUgY291bnRlci4NCi0tICovDQotLXN0YXRpYyB2b2lkDQotLV9fbWVtcF9yZXNl
dF9scnUoZGJlbnYsIG1lbXJlZywgY19tcCkNCi0tCURCX0VOViAqZGJlbnY7DQotLQlSRUdJTkZP
ICptZW1yZWc7DQotLQlNUE9PTCAqY19tcDsNCi0tew0KLS0JQkggKmJocDsNCi0tCURCX01QT09M
X0hBU0ggKmhwOw0KLS0JaW50IGJ1Y2tldDsNCi0tDQotLQkvKg0KLS0JICogVXBkYXRlIHRoZSBj
b3VudGVyIHNvIGFsbCBmdXR1cmUgYWxsb2NhdGlvbnMgd2lsbCBzdGFydCBhdCB0aGUNCi0tCSAq
IGJvdHRvbS4NCi0tCSAqLw0KLS0JY19tcC0+bHJ1X2NvdW50IC09IE1QT09MX0JBU0VfREVDUkVN
RU5UOw0KLS0NCi0tCS8qIFJlbGVhc2UgdGhlIHJlZ2lvbiBsb2NrLiAqLw0KLS0JUl9VTkxPQ0so
ZGJlbnYsIG1lbXJlZyk7DQotLQ0KLS0JLyogQWRqdXN0IHRoZSBwcmlvcml0eSBvZiBldmVyeSBi
dWZmZXIgaW4gdGhlIHN5c3RlbS4gKi8NCi0tCWZvciAoaHAgPSBSX0FERFIobWVtcmVnLCBjX21w
LT5odGFiKSwNCi0tCSAgICBidWNrZXQgPSAwOyBidWNrZXQgPCBjX21wLT5odGFiX2J1Y2tldHM7
ICsraHAsICsrYnVja2V0KSB7DQotLQkJLyoNCi0tCQkgKiBTa2lwIGVtcHR5IGJ1Y2tldHMuDQot
LQkJICoNCi0tCQkgKiBXZSBjYW4gY2hlY2sgZm9yIGVtcHR5IGJ1Y2tldHMgYmVmb3JlIGxvY2tp
bmcgYXMgd2UNCi0tCQkgKiBvbmx5IGNhcmUgaWYgdGhlIHBvaW50ZXIgaXMgemVybyBvciBub24t
emVyby4NCi0tCQkgKi8NCi0tCQlpZiAoU0hfVEFJTFFfRklSU1QoJmhwLT5oYXNoX2J1Y2tldCwg
X19iaCkgPT0gTlVMTCkNCi0tCQkJY29udGludWU7DQotLQ0KLS0JCU1VVEVYX0xPQ0soZGJlbnYs
ICZocC0+aGFzaF9tdXRleCk7DQotLQkJZm9yIChiaHAgPSBTSF9UQUlMUV9GSVJTVCgmaHAtPmhh
c2hfYnVja2V0LCBfX2JoKTsNCi0tCQkgICAgYmhwICE9IE5VTEw7IGJocCA9IFNIX1RBSUxRX05F
WFQoYmhwLCBocSwgX19iaCkpDQotLQkJCWlmIChiaHAtPnByaW9yaXR5ICE9IFVJTlQzMl9UX01B
WCAmJg0KLS0JCQkgICAgYmhwLT5wcmlvcml0eSA+IE1QT09MX0JBU0VfREVDUkVNRU5UKQ0KLS0J
CQkJYmhwLT5wcmlvcml0eSAtPSBNUE9PTF9CQVNFX0RFQ1JFTUVOVDsNCi0tCQlNVVRFWF9VTkxP
Q0soZGJlbnYsICZocC0+aGFzaF9tdXRleCk7DQotLQl9DQotLQ0KLS0JLyogUmVhY3F1aXJlIHRo
ZSByZWdpb24gbG9jay4gKi8NCi0tCVJfTE9DSyhkYmVudiwgbWVtcmVnKTsNCi0gfQ0KLSANCi0g
I2lmZGVmIERJQUdOT1NUSUMNCi0tLS0gbGliZGIvZGJyZWcvZGJyZWdfcmVjLmMub3JpZwlUaHUg
Tm92IDIwIDIzOjEzOjE5IDIwMDMNCi0rKysgbGliZGIvZGJyZWcvZGJyZWdfcmVjLmMJRnJpIE1h
ciAxOCAyMDozMToxNCAyMDA1DQotQEAgLTE3NCwxOSArMTc0LDIwIEBADQotIAkJCSAqIFR5cGlj
YWxseSwgY2xvc2VzIHNob3VsZCBtYXRjaCBhbiBvcGVuIHdoaWNoIG1lYW5zDQotIAkJCSAqIHRo
YXQgaWYgdGhpcyBpcyBhIGNsb3NlLCB0aGVyZSBzaG91bGQgYmUgYSB2YWxpZA0KLSAJCQkgKiBl
bnRyeSBpbiB0aGUgZGJlbnRyeSB0YWJsZSB3aGVuIHdlIGdldCBoZXJlLA0KLS0JCQkgKiBob3dl
dmVyIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbi4gIElmIHRoaXMgaXMgYW4NCi0rCQkJICogaG93ZXZl
ciB0aGVyZSBhcmUgZXhjZXB0aW9ucy4gIDEuIElmIHRoaXMgaXMgYW4NCi0gCQkJICogT1BFTkZJ
TEVTIHBhc3MsIHRoZW4gd2UgbWF5IGhhdmUgc3RhcnRlZCBmcm9tDQotIAkJCSAqIGEgbG9nIGZp
bGUgb3RoZXIgdGhhbiB0aGUgZmlyc3QsIGFuZCB0aGUNCi0gCQkJICogY29ycmVzcG9uZGluZyBv
cGVuIGFwcGVhcnMgaW4gYW4gZWFybGllciBmaWxlLg0KLS0JCQkgKiBXZSBjYW4gaWdub3JlIHRo
YXQgY2FzZSwgYnV0IGFsbCBvdGhlcnMgYXJlIGVycm9ycy4NCi0rCQkJICogMi4gSWYgd2UgYXJl
IHVuZG9pbmcgYW4gb3BlbiBvbiBhbiBhYm9ydCBvcg0KLSsJCQkgKiByZWNvdmVyeSwgaXQncyBw
b3NzaWJsZSB0aGF0IHdlIGZhaWxlZCBhZnRlcg0KLSsJCQkgKiB0aGUgbG9nIHJlY29yZCwgYnV0
IGJlZm9yZSB3ZSBhY3R1YWxseSBlbnRlcmVkDQotKwkJCSAqIGEgaGFuZGxlIGhlcmUuDQotIAkJ
CSAqLw0KLSAJCQlkYmUgPSAmZGJscC0+ZGJlbnRyeVthcmdwLT5maWxlaWRdOw0KLSAJCQlpZiAo
ZGJlLT5kYnAgPT0gTlVMTCAmJiAhZGJlLT5kZWxldGVkKSB7DQotIAkJCQkvKiBObyB2YWxpZCBl
bnRyeSBoZXJlLiAqLw0KLS0JCQkJaWYgKChhcmdwLT5vcGNvZGUgIT0gTE9HX0NMT1NFICYmDQot
LQkJCQkgICAgYXJncC0+b3Bjb2RlICE9IExPR19SQ0xPU0UpIHx8DQotLQkJCQkgICAgKG9wICE9
IERCX1RYTl9PUEVORklMRVMgJiYNCi0tCQkJCSAgICBvcCAhPURCX1RYTl9QT1BFTkZJTEVTKSkg
ew0KLSsJCQkJaWYgKERCX1JFRE8ob3ApIHx8DQotKwkJCQkgICAgYXJncC0+b3Bjb2RlID09IExP
R19DSEVDS1BPSU5UKSB7DQotIAkJCQkJX19kYl9lcnIoZGJlbnYsDQotIAkJCQkJICAgICJJbXBy
b3BlciBmaWxlIGNsb3NlIGF0ICVsdS8lbHUiLA0KLSAJCQkJCSAgICAodV9sb25nKWxzbnAtPmZp
bGUsDQotLS0tIGxpYmRiL2Vudi9lbnZfcmVjb3Zlci5jLm9yaWcJVGh1IE5vdiAyMCAyMzoxMzoy
MCAyMDAzDQotKysrIGxpYmRiL2Vudi9lbnZfcmVjb3Zlci5jCUZyaSBNYXIgMTggMjA6MzE6MTQg
MjAwNQ0KLUBAIC0yMzIsMTIgKzIzMiw5IEBADQotIAkgKiB3ZSdsbCBzdGlsbCBuZWVkIHRvIGRv
IGEgdnRydW5jYXRlIGJhc2VkIG9uIGluZm9ybWF0aW9uIHdlIGhhdmVuJ3QNCi0gCSAqIHlldCBj
b2xsZWN0ZWQuDQotIAkgKi8NCi0tCWlmIChyZXQgPT0gREJfTk9URk9VTkQpIHsNCi0rCWlmIChy
ZXQgPT0gREJfTk9URk9VTkQpIA0KLSAJCXJldCA9IDA7DQotLQkJaWYgKG1heF9sc24gPT0gTlVM
TCkNCi0tCQkJZ290byBkb25lOw0KLS0JfQ0KLS0JaWYgKHJldCAhPSAwKQ0KLSsJZWxzZSBpZiAo
cmV0ICE9IDApDQotIAkJZ290byBlcnI7DQotIA0KLSAJaGlfdHhuID0gdHhuaWQ7DQotQEAgLTMz
MSw3ICszMjgsNyBAQA0KLSANCi0gCS8qIEZpbmQgYSBsb3cgdHhuaWQuICovDQotIAlyZXQgPSAw
Ow0KLS0JZG8gew0KLSsJaWYgKGhpX3R4biAhPSAwKSBkbyB7DQotIAkJLyogdHhuaWQgaXMgYWZ0
ZXIgcmVjdHlwZSwgd2hpY2ggaXMgYSB1X2ludDMyLiAqLw0KLSAJCW1lbWNweSgmdHhuaWQsDQot
IAkJICAgICh1X2ludDhfdCAqKWRhdGEuZGF0YSArIHNpemVvZih1X2ludDMyX3QpLCBzaXplb2Yo
dHhuaWQpKTsNCi1AQCAtMzQ0LDExICszNDEsOCBAQA0KLSAJICogVGhlcmUgYXJlIG5vIHRyYW5z
YWN0aW9ucyBhbmQgd2UncmUgbm90IHJlY292ZXJpbmcgdG8gYW4gTFNOIChzZWUNCi0gCSAqIGFi
b3ZlKSwgc28gdGhlcmUgaXMgbm90aGluZyB0byBkby4NCi0gCSAqLw0KLS0JaWYgKHJldCA9PSBE
Ql9OT1RGT1VORCkgew0KLSsJaWYgKHJldCA9PSBEQl9OT1RGT1VORCkgDQotIAkJcmV0ID0gMDsN
Ci0tCQlpZiAobWF4X2xzbiA9PSBOVUxMKQ0KLS0JCQlnb3RvIGRvbmU7DQotLQl9DQotIA0KLSAJ
LyogUmVzZXQgdG8gdGhlIGZpcnN0IGxzbi4gKi8NCi0gCWlmIChyZXQgIT0gMCB8fCAocmV0ID0g
bG9nYy0+Z2V0KGxvZ2MsICZmaXJzdF9sc24sICZkYXRhLCBEQl9TRVQpKSAhPSAwKQ0KLUBAIC0z
NjcsNiArMzYxLDEwIEBADQotIAkgICAgdHhuaW5mbywgJmRhdGEsICZmaXJzdF9sc24sICZsYXN0
X2xzbiwgbmZpbGVzLCAxKSkgIT0gMCkNCi0gCQlnb3RvIGVycjsNCi0gDQotKwkvKiBJZiB0aGVy
ZSB3ZXJlIG5vIHRyYW5zYWN0aW9ucywgdGhlbiB3ZSBjYW4gYmFpbCBvdXQgZWFybHkuICovDQot
KwlpZiAoaGlfdHhuID09IDAgJiYgbWF4X2xzbiA9PSBOVUxMKQ0KLSsJCWdvdG8gZG9uZTsNCi0r
CQkNCi0gCS8qDQotIAkgKiBQYXNzICMyLg0KLSAJICoNCi1AQCAtNDgzLDYgKzQ4MSw3IEBADQot
IAlpZiAoKHJldCA9IF9fZGJyZWdfY2xvc2VfZmlsZXMoZGJlbnYpKSAhPSAwKQ0KLSAJCWdvdG8g
ZXJyOw0KLSANCi0rZG9uZToNCi0gCWlmIChtYXhfbHNuICE9IE5VTEwpIHsNCi0gCQlyZWdpb24t
Pmxhc3RfY2twID0gKChEQl9UWE5IRUFEICopdHhuaW5mbyktPmNrcGxzbjsNCi0gDQotQEAgLTUz
OCw3ICs1MzcsOCBAQA0KLSAJCV9fZGJfZXJyKGRiZW52LCAiUmVjb3ZlcnkgY29tcGxldGUgYXQg
JS4yNHMiLCBjdGltZSgmbm93KSk7DQotIAkJX19kYl9lcnIoZGJlbnYsICIlcyAlbHggJXMgWyVs
dV1bJWx1XSIsDQotIAkJICAgICJNYXhpbXVtIHRyYW5zYWN0aW9uIElEIiwNCi0tCQkgICAgKChE
Ql9UWE5IRUFEICopdHhuaW5mbyktPm1heGlkLA0KLSsJCSAgICB0eG5pbmZvID09IE5VTEwgPyBU
WE5fTUlOSU1VTSA6DQotKwkJCSgoREJfVFhOSEVBRCAqKXR4bmluZm8pLT5tYXhpZCwNCi0gCQkg
ICAgIlJlY292ZXJ5IGNoZWNrcG9pbnQiLA0KLSAJCSAgICAodV9sb25nKXJlZ2lvbi0+bGFzdF9j
a3AuZmlsZSwNCi0gCQkgICAgKHVfbG9uZylyZWdpb24tPmxhc3RfY2twLm9mZnNldCk7DQotQEAg
LTU1MCw3ICs1NTAsNiBAQA0KLSAJCSAgICAodV9sb25nKWxzbi5maWxlLCAodV9sb25nKWxzbi5v
ZmZzZXQsIHBhc3MpOw0KLSAJfQ0KLSANCi0tZG9uZToNCi0gZXJyOglpZiAobG9ja2lkICE9IERC
X0xPQ0tfSU5WQUxJRElEKSB7DQotIAkJaWYgKCh0X3JldCA9IF9fcmVwX3VubG9ja3BhZ2VzKGRi
ZW52LCBsb2NraWQpKSAhPSAwICYmIHJldCA9PSAwKQ0KLSAJCQlyZXQgPSB0X3JldDsNCkluZGV4
OiBmaWxlcy9wYXRjaC1zeXNkYjQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiBmaWxlcy9wYXRjaC1z
eXNkYjQNCmRpZmYgLU4gZmlsZXMvcGF0Y2gtc3lzZGI0DQotLS0gL2Rldi9udWxsCTEgSmFuIDE5
NzAgMDA6MDA6MDAgLTAwMDANCisrKyBmaWxlcy9wYXRjaC1zeXNkYjQJMjcgRmViIDIwMDYgMTg6
NDQ6MjcgLTAwMDANCkBAIC0wLDAgKzEsNDkgQEANCistLS0gTWFrZWZpbGUuaW4JV2VkIE5vdiAz
MCAwMzo1ODowNCAyMDA1DQorKysrIE1ha2VmaWxlLmluCUZyaSBGZWIgMjQgMTg6Mjc6NDYgMjAw
Ng0KK0BAIC0zNzAsMyArMzcwLDMgQEANCisgRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyA9IC0t
ZW5hYmxlLWd0ay1kb2MNCistU1VCRElSUyA9IGxpYmRiIGxpYmVkYXRhc2VydmVyIHNlcnZlcnMg
Y2FtZWwgYWRkcmVzc2Jvb2sgY2FsZW5kYXIgbGliZWRhdGFzZXJ2ZXJ1aSBzcmMgZG9jcyBhcnQg
cG8NCisrU1VCRElSUyA9IGxpYmVkYXRhc2VydmVyIHNlcnZlcnMgY2FtZWwgYWRkcmVzc2Jvb2sg
Y2FsZW5kYXIgbGliZWRhdGFzZXJ2ZXJ1aSBzcmMgZG9jcyBhcnQgcG8NCisgRElTVF9TVUJESVJT
ID0gbGliZWRhdGFzZXJ2ZXIgc2VydmVycyBjYW1lbCBhZGRyZXNzYm9vayBjYWxlbmRhciBsaWJl
ZGF0YXNlcnZlcnVpIHNyYyBkb2NzIGFydCBwbw0KKy0tLSBsaWJlZGF0YXNlcnZlci9NYWtlZmls
ZS5pbglXZWQgTm92IDMwIDAzOjU4OjAxIDIwMDUNCisrKysgbGliZWRhdGFzZXJ2ZXIvTWFrZWZp
bGUuaW4JRnJpIEZlYiAyNCAxODo0NDo1OSAyMDA2DQorQEAgLTY2LDUgKzY2LDQgQEANCisgYW1f
X0RFUEVOREVOQ0lFU18xID0NCisgbGliZWRhdGFzZXJ2ZXJfMV8yX2xhX0RFUEVOREVOQ0lFUyA9
ICQoYW1fX0RFUEVOREVOQ0lFU18xKSBcDQorLQkkKGFtX19ERVBFTkRFTkNJRVNfMSkgJCh0b3Bf
YnVpbGRkaXIpL2xpYmRiL2Rpc3QvbGliZGItNC4xLmxhIFwNCisgCSQoYW1fX0RFUEVOREVOQ0lF
U18xKQ0KKyBhbV9fb2JqZWN0c18xID0gZS1kYXRhLXNlcnZlci1tYXJzaGFsLmxvDQorQEAgLTM5
MSw1ICszOTAsNCBAQA0KKyAJLUkkKHRvcF9zcmNkaXIpCQkJCQkJCVwNCisgCS1ER19MT0dfRE9N
QUlOPVwiZS1kYXRhLXNlcnZlclwiCQkJCVwNCistCS1JJCh0b3Bfc3JjZGlyKS9saWJkYi9kaXN0
CQkJCQlcDQorIAktREVfREFUQV9TRVJWRVJfRVhURU5TSU9ORElSPVwiJChleHRlbnNpb25kaXIp
XCIJCVwNCisgCS1ERV9EQVRBX1NFUlZFUl9JTUFHRVNESVI9XCIkKGltYWdlc2RpcilcIgkJCVwN
CitAQCAtNDMxLDUgKzQyOSw1IEBADQorIAkkKEVfREFUQV9TRVJWRVJfTElCUykJCQkJXA0KKyAJ
JChJQ09OVl9MSUJTKQkJCQkJXA0KKy0JJCh0b3BfYnVpbGRkaXIpL2xpYmRiL2Rpc3QvbGliZGIt
NC4xLmxhCQlcDQorKwktbCR7REJWRVJTSU9OfQkJXA0KKyAJJChTT0NLRVRfTElCUykNCisgDQor
LS0tIGFkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuaW4JTW9uIEZlYiAyNyAxMzo0
Mjo0MyAyMDA2DQorKysrIGFkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuaW4JTW9u
IEZlYiAyNyAxMzo0Mjo0MyAyMDA2DQorQEAgLTYzLDUgKzYzLDUgQEANCisgCSQodG9wX2J1aWxk
ZGlyKS9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL2xpYmVkYXRhLWJvb2stMS4yLmxhIFwNCisg
CSQodG9wX2J1aWxkZGlyKS9saWJlZGF0YXNlcnZlci9saWJlZGF0YXNlcnZlci0xLjIubGEgXA0K
Ky0JJCh0b3BfYnVpbGRkaXIpL2xpYmRiL2Rpc3QvbGliZGItNC4xLmxhICQoYW1fX0RFUEVOREVO
Q0lFU18xKQ0KKysJJChhbV9fREVQRU5ERU5DSUVTXzEpDQorIGFtX2xpYmVib29rYmFja2VuZGZp
bGVfbGFfT0JKRUNUUyA9IGUtYm9vay1iYWNrZW5kLWZpbGUubG8gXA0KKyAJZS1ib29rLWJhY2tl
bmQtZmlsZS1mYWN0b3J5LmxvDQorQEAgLTM3Myw1ICszNzMsNCBAQA0KKyAJLUkkKHRvcF9zcmNk
aXIpL2FkZHJlc3Nib29rCQkJXA0KKyAJLUkkKHRvcF9idWlsZGRpcikvYWRkcmVzc2Jvb2sJCQlc
DQorLQktSSQodG9wX3NyY2RpcikvbGliZGIvZGlzdAkJCVwNCisgICAgICAgICAkKEVWT0xVVElP
Tl9BRERSRVNTQk9PS19DRkxBR1MpDQorIA0KK0BAIC0zODYsNSArMzg1LDQgQEANCisgCSQodG9w
X2J1aWxkZGlyKS9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL2xpYmVkYXRhLWJvb2stMS4yLmxh
CVwNCisgCSQodG9wX2J1aWxkZGlyKS9saWJlZGF0YXNlcnZlci9saWJlZGF0YXNlcnZlci0xLjIu
bGEJCVwNCistCSQodG9wX2J1aWxkZGlyKS9saWJkYi9kaXN0L2xpYmRiLTQuMS5sYQkJCQlcDQor
IAkkKEVWT0xVVElPTl9BRERSRVNTQk9PS19MSUJTKQ0KKyANCi==


--=-+1+GTNFbpXwN0WXhSm6Z--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1141073332.93780.6.camel>