<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>29503</bug_id>
          
          <creation_ts>2009-09-18 13:54:01 -0700</creation_ts>
          <short_desc>Implement ES5 Object.defineProperty function</short_desc>
          <delta_ts>2009-09-18 16:12:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>148374</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-18 13:54:01 -0700</bug_when>
    <thetext>as in title</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148376</commentid>
    <comment_count>1</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-18 13:54:50 -0700</bug_when>
    <thetext>rdar://7214220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148397</commentid>
    <comment_count>2</comment_count>
      <attachid>39791</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-18 14:51:48 -0700</bug_when>
    <thetext>Created attachment 39791
Implement ES5 Object.defineProperty function

https://bugs.webkit.org/show_bug.cgi?id=29503

Reviewed by NOBODY(OOPS!)

Implement Object.defineProperty.  This requires adding the API to
ObjectConstructor, along with a helper function that implements the
ES5 internal [[ToPropertyDescriptor]] function.  It then adds
JSObject::defineOwnProperty that implements the appropriate ES5 semantics.
Currently defineOwnProperty uses a delete followed by a put to redefine
attributes of a property, clearly this is less efficient than it could be
but we can improve this if it needs to be possible in future.
---
 33 files changed, 921 insertions(+), 73 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148429</commentid>
    <comment_count>3</comment_count>
      <attachid>39791</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-09-18 15:27:39 -0700</bug_when>
    <thetext>Comment on attachment 39791
Implement ES5 Object.defineProperty function

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148437</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-18 16:12:22 -0700</bug_when>
    <thetext>Committed r48542</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39791</attachid>
            <date>2009-09-18 14:51:48 -0700</date>
            <delta_ts>2009-09-18 15:27:38 -0700</delta_ts>
            <desc>Implement ES5 Object.defineProperty function</desc>
            <filename>bug-29503-20090918145147.patch</filename>
            <type>text/plain</type>
            <size>90017</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA0MmRmNmU2Li5jMWVlMWJiIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAg
QEAKKzIwMDktMDktMTggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgRVM1IE9i
amVjdC5kZWZpbmVQcm9wZXJ0eSBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MDMKKworICAgICAgICBJbXBsZW1lbnQgT2JqZWN0LmRl
ZmluZVByb3BlcnR5LiAgVGhpcyByZXF1aXJlcyBhZGRpbmcgdGhlIEFQSSB0bworICAgICAgICBP
YmplY3RDb25zdHJ1Y3RvciwgYWxvbmcgd2l0aCBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IGltcGxl
bWVudHMgdGhlCisgICAgICAgIEVTNSBpbnRlcm5hbCBbW1RvUHJvcGVydHlEZXNjcmlwdG9yXV0g
ZnVuY3Rpb24uICBJdCB0aGVuIGFkZHMKKyAgICAgICAgSlNPYmplY3Q6OmRlZmluZU93blByb3Bl
cnR5IHRoYXQgaW1wbGVtZW50cyB0aGUgYXBwcm9wcmlhdGUgRVM1IHNlbWFudGljcy4KKyAgICAg
ICAgQ3VycmVudGx5IGRlZmluZU93blByb3BlcnR5IHVzZXMgYSBkZWxldGUgZm9sbG93ZWQgYnkg
YSBwdXQgdG8gcmVkZWZpbmUKKyAgICAgICAgYXR0cmlidXRlcyBvZiBhIHByb3BlcnR5LCBjbGVh
cmx5IHRoaXMgaXMgbGVzcyBlZmZpY2llbnQgdGhhbiBpdCBjb3VsZCBiZQorICAgICAgICBidXQg
d2UgY2FuIGltcHJvdmUgdGhpcyBpZiBpdCBuZWVkcyB0byBiZSBwb3NzaWJsZSBpbiBmdXR1cmUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpk
ZWZpbmVHZXR0ZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmRlZmluZVNl
dHRlcik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAg
ICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRl
cjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAg
ICAgVXBkYXRlIGRlZmluZUdldHRlci9TZXR0ZXIgY2FsbHMKKyAgICAgICAgKiBydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmRlZmlu
ZUdldHRlcik6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpkZWZpbmVTZXR0ZXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZUdldHRlcik6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVTZXR0ZXIpOgorICAgICAgICAoSlNDOjpwdXREZXNj
cmlwdG9yKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6dG9Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAg
ICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5KToKKyAgICAgICAgKiBydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0Rl
ZmluZUdldHRlcik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6
CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3I6OndyaXRhYmxlKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yOjplbnVtZXJhYmxlKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
Ojpjb25maWd1cmFibGUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmlzRGF0
YURlc2NyaXB0b3IpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmlzR2VuZXJp
Y0Rlc2NyaXB0b3IpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmlzQWNjZXNz
b3JEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yOjpnZXR0ZXIp
OgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OnNldHRlcik6CisgICAgICAgIChK
U0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2V0RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvcjo6c2V0QWNjZXNzb3JEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yOjpzZXRXcml0YWJsZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5
RGVzY3JpcHRvcjo6c2V0RW51bWVyYWJsZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3Jp
cHRvcjo6c2V0Q29uZmlndXJhYmxlKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
OjpzZXRTZXR0ZXIpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OnNldEdldHRl
cik6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6ZXF1YWxUbyk6CisgICAgICAg
IChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6YXR0cmlidXRlc0VxdWFsKToKKyAgICAgICAgKEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yOjphdHRyaWJ1dGVzV2l0aE92ZXJyaWRlKToKKyAgICAgICAg
KiBydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3I6OlByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvcjo6dmFsdWUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OnNldFZh
bHVlKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yOjppc0VtcHR5KToKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yOjp3cml0YWJsZVByZXNlbnQpOgorICAgICAgICAo
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmVudW1lcmFibGVQcmVzZW50KToKKyAgICAgICAgKEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yOjpjb25maWd1cmFibGVQcmVzZW50KToKKyAgICAgICAgKEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yOjpzZXR0ZXJQcmVzZW50KToKKyAgICAgICAgKEpTQzo6UHJv
cGVydHlEZXNjcmlwdG9yOjpnZXR0ZXJQcmVzZW50KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
OjopOgorCiAyMDA5LTA5LTE4ICBHYWJvciBMb2tpICA8bG9raUBpbmYudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAKaW5kZXggMzJmOTMxMi4uMjc4YTU5ZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cApAQCAtMTI4LDggKzEyOCw4IEBAIF9fWk4zSlNDMTNTYW1wbGluZ0ZsYWdzN3NfZmxhZ3NF
CiBfX1pOM0pTQzEzU3RhdGVtZW50Tm9kZTZzZXRMb2NFaWkKIF9fWk4zSlNDMTNqc093bmVkU3Ry
aW5nRVBOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdVU3RyaW5nRQogX19aTjNKU0MxNEpTR2xvYmFs
T2JqZWN0MTBnbG9iYWxFeGVjRXYKLV9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEyZGVmaW5lR2V0
dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184SlNPYmplY3RFCi1fX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3QxMmRlZmluZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVQTlNfOEpTT2JqZWN0RQorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZp
bmVHZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVq
CitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMmRlZmluZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVQTlNfOEpTT2JqZWN0RWoKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVj
dDEybWFya0NoaWxkcmVuRVJOU185TWFya1N0YWNrRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183
SlNWYWx1ZUVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUgIApAQCAt
MTU1LDExICsxNTUsMTUgQEAgX19aTjNKU0MxN1Byb3RvdHlwZUZ1bmN0aW9uQzFFUE5TXzlFeGVj
U3RhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRWkKIF9fWk4zSlNDMTdQcm90
b3R5cGVGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRWlSS05TXzEwSWRlbnRpZmllckVQRk5TXzdK
U1ZhbHVlRVMyX1BOU184SlNPYmplY3RFUzZfUktOU183QXJnTGlzdEVFCiBfX1pOM0pTQzE3Y29u
c3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVFUktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRp
ZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlNDMThEZWJ1Z2dlckFjdGl2YXRpb25DMUVQTlNf
OEpTT2JqZWN0RQorX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjExc2V0V3JpdGFibGVFYgog
X19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjEyc2V0VW5kZWZpbmVkRXYKIF9fWk4zSlNDMThQ
cm9wZXJ0eURlc2NyaXB0b3IxM3NldERlc2NyaXB0b3JFTlNfN0pTVmFsdWVFagorX19aTjNKU0Mx
OFByb3BlcnR5RGVzY3JpcHRvcjEzc2V0RW51bWVyYWJsZUViCitfX1pOM0pTQzE4UHJvcGVydHlE
ZXNjcmlwdG9yMTVzZXRDb25maWd1cmFibGVFYgorX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRv
cjE3ZGVmYXVsdEF0dHJpYnV0ZXNFCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMjFzZXRB
Y2Nlc3NvckRlc2NyaXB0b3JFTlNfN0pTVmFsdWVFUzFfagotX19aTkszSlNDMThQcm9wZXJ0eURl
c2NyaXB0b3I2c2V0dGVyRXYKLV9fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yNmdldHRlckV2
CitfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yOXNldEdldHRlckVOU183SlNWYWx1ZUUKK19f
Wk4zSlNDMThQcm9wZXJ0eURlc2NyaXB0b3I5c2V0U2V0dGVyRU5TXzdKU1ZhbHVlRQogX19aTjNK
U0MxOWNvbnN0cnVjdEVtcHR5QXJyYXlFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzE5aW5pdGlh
bGl6ZVRocmVhZGluZ0V2CiBfX1pOM0pTQzIwTWFya2VkQXJndW1lbnRCdWZmZXIxMHNsb3dBcHBl
bmRFTlNfN0pTVmFsdWVFCkBAIC0yMzQsOCArMjM4LDggQEAgX19aTjNKU0M4RGVidWdnZXI2YXR0
YWNoRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4RGVidWdnZXI2ZGV0YWNoRVBOU18x
NEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4RGVidWdnZXJEMkV2CiBfX1pOM0pTQzhKU09iamVj
dDExaGFzSW5zdGFuY2VFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFUzNfCi1fX1pOM0pTQzhK
U09iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBT
MF8KLV9fWk4zSlNDOEpTT2JqZWN0MTJkZWZpbmVTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUFMwXworX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagorX19aTjNKU0M4SlNPYmplY3QxMmRlZmlu
ZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4
SlNPYmplY3QxMmxvb2t1cEdldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUK
IF9fWk4zSlNDOEpTT2JqZWN0MTJsb29rdXBTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFCiBfX1pOM0pTQzhKU09iamVjdDEybWFya0NoaWxkcmVuRVJOU185TWFya1N0YWNr
RQpAQCAtMjQ0LDYgKzI0OCw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKIF9f
Wk4zSlNDOEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1By
b3BlcnR5TmFtZUFycmF5RQogX19aTjNKU0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRvcklERXYK
K19fWk4zSlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmpl
Y3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rp
b25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWoKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRX
aXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVqYlJOU18xNVB1dFByb3BlcnR5U2xvdEUKQEAgLTM0Niw3ICszNTEsMTMgQEAgX19aTkszSlND
MTdEZWJ1Z2dlckNhbGxGcmFtZTEyZnVuY3Rpb25OYW1lRXYKIF9fWk5LM0pTQzE3RGVidWdnZXJD
YWxsRnJhbWUyMmNhbGN1bGF0ZWRGdW5jdGlvbk5hbWVFdgogX19aTkszSlNDMTdEZWJ1Z2dlckNh
bGxGcmFtZTR0eXBlRXYKIF9fWk5LM0pTQzE3RGVidWdnZXJDYWxsRnJhbWU4ZXZhbHVhdGVFUktO
U183VVN0cmluZ0VSTlNfN0pTVmFsdWVFCi1fX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjEy
aGFzQWNjZXNzb3JzRXYKK19fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTBlbnVtZXJhYmxl
RXYKK19fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTJjb25maWd1cmFibGVFdgorX19aTksz
SlNDMThQcm9wZXJ0eURlc2NyaXB0b3IxNmlzRGF0YURlc2NyaXB0b3JFdgorX19aTkszSlNDMThQ
cm9wZXJ0eURlc2NyaXB0b3IyMGlzQWNjZXNzb3JEZXNjcmlwdG9yRXYKK19fWk5LM0pTQzE4UHJv
cGVydHlEZXNjcmlwdG9yNnNldHRlckV2CitfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjZn
ZXR0ZXJFdgorX19aTkszSlNDMThQcm9wZXJ0eURlc2NyaXB0b3I4d3JpdGFibGVFdgogX19aTksz
SlNDNEhlYXAxMHN0YXRpc3RpY3NFdgogX19aTkszSlNDNkpTQ2VsbDExdG9QcmltaXRpdmVFUE5T
XzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRpdmVUeXBlRQogX19aTkszSlNDNkpTQ2Vs
bDEydG9UaGlzT2JqZWN0RVBOU185RXhlY1N0YXRlRQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggN2E2OGQ3ZC4uNWNjOWE5ZiAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC04MSwx
NCArODEsMTQgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldFByb3BlcnR5QXR0cmlidXRl
cyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gbV9hY3RpdmF0
aW9uLT5nZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoZXhlYywgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVz
KTsKIH0KIAotdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlZmluZUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1
bmN0aW9uKQordm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlZmluZUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1
bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewotICAgIG1fYWN0aXZhdGlvbi0+ZGVmaW5l
R2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24pOworICAgIG1fYWN0aXZh
dGlvbi0+ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24sIGF0
dHJpYnV0ZXMpOwogfQogCi12b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVmaW5lU2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
c2V0dGVyRnVuY3Rpb24pCit2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVmaW5lU2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
c2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7Ci0gICAgbV9hY3RpdmF0aW9u
LT5kZWZpbmVTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBzZXR0ZXJGdW5jdGlvbik7CisgICAg
bV9hY3RpdmF0aW9uLT5kZWZpbmVTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBzZXR0ZXJGdW5j
dGlvbiwgYXR0cmlidXRlcyk7CiB9CiAKIEpTVmFsdWUgRGVidWdnZXJBY3RpdmF0aW9uOjpsb29r
dXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
aCBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDA2
YWVhNWEuLmRkMzQyNjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5oCkBAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldFBy
b3BlcnR5QXR0cmlidXRlcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRl
ZmluZUdldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KiBnZXR0ZXJGdW5jdGlvbik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVTZXR0
ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
c2V0dGVyRnVuY3Rpb24pOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1
bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRlZmlu
ZVNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1
YWwgSlNWYWx1ZSBsb29rdXBHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIGxvb2t1cFNldHRlcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggNDU2MGRiMC4uYTUwYWEwMiAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtMzcwNyw3ICszNzA3
LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxhZyBm
bGFnLCBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmkKICAgICAgICAgSlNPYmplY3QqIGJhc2VPYmog
PSBhc09iamVjdChjYWxsRnJhbWUtPnIoYmFzZSkuanNWYWx1ZSgpKTsKICAgICAgICAgSWRlbnRp
ZmllciYgaWRlbnQgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHByb3BlcnR5
KTsKICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+cihmdW5jdGlvbikuanNWYWx1ZSgpLmlzT2Jq
ZWN0KCkpOwotICAgICAgICBiYXNlT2JqLT5kZWZpbmVHZXR0ZXIoY2FsbEZyYW1lLCBpZGVudCwg
YXNPYmplY3QoY2FsbEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1ZhbHVlKCkpKTsKKyAgICAgICAgYmFz
ZU9iai0+ZGVmaW5lR2V0dGVyKGNhbGxGcmFtZSwgaWRlbnQsIGFzT2JqZWN0KGNhbGxGcmFtZS0+
cihmdW5jdGlvbikuanNWYWx1ZSgpKSwgMCk7CiAKICAgICAgICAgKyt2UEM7CiAgICAgICAgIE5F
WFRfSU5TVFJVQ1RJT04oKTsKQEAgLTM3MzEsNyArMzczMSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlvbkZsYWcgZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdp
c3RlckZpCiAgICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoY2FsbEZyYW1lLT5y
KGJhc2UpLmpzVmFsdWUoKSk7CiAgICAgICAgIElkZW50aWZpZXImIGlkZW50ID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwcm9wZXJ0eSk7CiAgICAgICAgIEFTU0VSVChjYWxs
RnJhbWUtPnIoZnVuY3Rpb24pLmpzVmFsdWUoKS5pc09iamVjdCgpKTsKLSAgICAgICAgYmFzZU9i
ai0+ZGVmaW5lU2V0dGVyKGNhbGxGcmFtZSwgaWRlbnQsIGFzT2JqZWN0KGNhbGxGcmFtZS0+cihm
dW5jdGlvbikuanNWYWx1ZSgpKSk7CisgICAgICAgIGJhc2VPYmotPmRlZmluZVNldHRlcihjYWxs
RnJhbWUsIGlkZW50LCBhc09iamVjdChjYWxsRnJhbWUtPnIoZnVuY3Rpb24pLmpzVmFsdWUoKSks
IDApOwogCiAgICAgICAgICsrdlBDOwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAppbmRleCA1ODE1MTc1Li41Y2JmYWM2IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5jcHAKQEAgLTI5NjksNyArMjk2OSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQs
IG9wX3B1dF9nZXR0ZXIpCiAgICAgQVNTRVJUKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCku
aXNPYmplY3QoKSk7CiAgICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChzdGFja0ZyYW1l
LmFyZ3NbMF0uanNWYWx1ZSgpKTsKICAgICBBU1NFUlQoc3RhY2tGcmFtZS5hcmdzWzJdLmpzVmFs
dWUoKS5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5kZWZpbmVHZXR0ZXIoY2FsbEZyYW1lLCBz
dGFja0ZyYW1lLmFyZ3NbMV0uaWRlbnRpZmllcigpLCBhc09iamVjdChzdGFja0ZyYW1lLmFyZ3Nb
Ml0uanNWYWx1ZSgpKSk7CisgICAgYmFzZU9iai0+ZGVmaW5lR2V0dGVyKGNhbGxGcmFtZSwgc3Rh
Y2tGcmFtZS5hcmdzWzFdLmlkZW50aWZpZXIoKSwgYXNPYmplY3Qoc3RhY2tGcmFtZS5hcmdzWzJd
LmpzVmFsdWUoKSksIDApOwogfQogCiBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRf
c2V0dGVyKQpAQCAtMjk4MSw3ICsyOTgxLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwg
b3BfcHV0X3NldHRlcikKICAgICBBU1NFUlQoc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKS5p
c09iamVjdCgpKTsKICAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KHN0YWNrRnJhbWUu
YXJnc1swXS5qc1ZhbHVlKCkpOwogICAgIEFTU0VSVChzdGFja0ZyYW1lLmFyZ3NbMl0uanNWYWx1
ZSgpLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPmRlZmluZVNldHRlcihjYWxsRnJhbWUsIHN0
YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCksIGFzT2JqZWN0KHN0YWNrRnJhbWUuYXJnc1sy
XS5qc1ZhbHVlKCkpKTsKKyAgICBiYXNlT2JqLT5kZWZpbmVTZXR0ZXIoY2FsbEZyYW1lLCBzdGFj
a0ZyYW1lLmFyZ3NbMV0uaWRlbnRpZmllcigpLCBhc09iamVjdChzdGFja0ZyYW1lLmFyZ3NbMl0u
anNWYWx1ZSgpKSwgMCk7CiB9CiAKIERFRklORV9TVFVCX0ZVTkNUSU9OKEpTT2JqZWN0Kiwgb3Bf
bmV3X2Vycm9yKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmlu
ZGV4IDg0OTNkNzMuLjc4NTQ2ZjIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICAgICBtYWNybyhjb21waWxlKSBcCiAgICAg
bWFjcm8oY29uZmlndXJhYmxlKSBcCiAgICAgbWFjcm8oY29uc3RydWN0b3IpIFwKKyAgICBtYWNy
byhkZWZpbmVQcm9wZXJ0eSkgXAogICAgIG1hY3JvKGVudW1lcmFibGUpIFwKICAgICBtYWNybyhl
dmFsKSBcCiAgICAgbWFjcm8oZXhlYykgXApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5k
ZXggMWZjY2E4MS4uMTAxZjU0MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0y
MjMsNyArMjIzLDcgQEAgYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNsb3QKICAgICAgICAgfQogICAgIH0K
IAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCBzbG90KTsKIH0KIAogYm9vbCBK
U0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggM2ExOTA5ZC4uOGQ3MWFjMyAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE3NSwxOCArMTc1LDE4IEBA
IHZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgfQogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0
OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jKQordm9pZCBKU0dsb2JhbE9iamVjdDo6ZGVmaW5l
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U09iamVjdCogZ2V0dGVyRnVuYywgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdDsKICAgICBpZiAoIXN5bWJvbFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgc2xvdCkp
Ci0gICAgICAgIEpTVmFyaWFibGVPYmplY3Q6OmRlZmluZUdldHRlcihleGVjLCBwcm9wZXJ0eU5h
bWUsIGdldHRlckZ1bmMpOworICAgICAgICBKU1ZhcmlhYmxlT2JqZWN0OjpkZWZpbmVHZXR0ZXIo
ZXhlYywgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jLCBhdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBK
U0dsb2JhbE9iamVjdDo6ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuYykKK3ZvaWQgSlNHbG9iYWxP
YmplY3Q6OmRlZmluZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmMsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7
CiAgICAgUHJvcGVydHlTbG90IHNsb3Q7CiAgICAgaWYgKCFzeW1ib2xUYWJsZUdldChwcm9wZXJ0
eU5hbWUsIHNsb3QpKQotICAgICAgICBKU1ZhcmlhYmxlT2JqZWN0OjpkZWZpbmVTZXR0ZXIoZXhl
YywgcHJvcGVydHlOYW1lLCBzZXR0ZXJGdW5jKTsKKyAgICAgICAgSlNWYXJpYWJsZU9iamVjdDo6
ZGVmaW5lU2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2V0dGVyRnVuYywgYXR0cmlidXRlcyk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNPYmplY3QqIGxhc3RJblByb3RvdHlwZUNoYWluKEpTT2Jq
ZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
ZDExNTBjYy4uNWY3MTM3ZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aApAQCAtMTc1LDggKzE3NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcyk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJG
dW5jKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzZXR0ZXJGdW5jKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzZXR0ZXJGdW5jLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKIAogICAgICAgICAvLyBMaW5rZWQgbGlzdCBvZiBhbGwgZ2xvYmFsIG9iamVj
dHMgdGhhdCB1c2UgdGhlIHNhbWUgSlNHbG9iYWxEYXRhLgogICAgICAgICBKU0dsb2JhbE9iamVj
dComIGhlYWQoKSB7IHJldHVybiBkKCktPmdsb2JhbERhdGEtPmhlYWQ7IH0KZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKaW5kZXggZjkxMDYwMy4uOGMxNGZkZCAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKQEAgLTI3NSw3ICsyNzUsNyBAQCBjb25zdCBIYXNoRW50cnkqIEpT
T2JqZWN0OjpmaW5kUHJvcGVydHlIYXNoRW50cnkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaQogICAgIHJldHVybiAwOwogfQogCi12b2lkIEpTT2JqZWN0OjpkZWZpbmVHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBn
ZXR0ZXJGdW5jdGlvbikKK3ZvaWQgSlNPYmplY3Q6OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIEpTVmFsdWUgb2JqZWN0ID0gZ2V0RGly
ZWN0KHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKG9iamVjdCAmJiBvYmplY3QuaXNHZXR0ZXJTZXR0
ZXIoKSkgewpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgSlNPYmplY3Q6OmRlZmluZUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPCiAKICAg
ICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKICAgICBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9
IG5ldyAoZXhlYykgR2V0dGVyU2V0dGVyKGV4ZWMpOwotICAgIHB1dERpcmVjdEludGVybmFsKGV4
ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIEdldHRlciwgdHJ1
ZSwgc2xvdCk7CisgICAgcHV0RGlyZWN0SW50ZXJuYWwoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9w
ZXJ0eU5hbWUsIGdldHRlclNldHRlciwgYXR0cmlidXRlcyB8IEdldHRlciwgdHJ1ZSwgc2xvdCk7
CiAKICAgICAvLyBwdXREaXJlY3Qgd2lsbCBjaGFuZ2Ugb3VyIFN0cnVjdHVyZSBpZiB3ZSBhZGQg
YSBuZXcgcHJvcGVydHkuIEZvcgogICAgIC8vIGdldHRlcnMgYW5kIHNldHRlcnMsIHRob3VnaCwg
d2UgYWxzbyBuZWVkIHRvIGNoYW5nZSBvdXIgU3RydWN0dXJlCkBAIC0zMDIsNyArMzAyLDcgQEAg
dm9pZCBKU09iamVjdDo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU08KICAgICBnZXR0ZXJTZXR0ZXItPnNldEdldHRlcihnZXR0
ZXJGdW5jdGlvbik7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OmRlZmluZVNldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1
bmN0aW9uKQordm9pZCBKU09iamVjdDo6ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgSlNWYWx1ZSBvYmplY3QgPSBnZXREaXJlY3QocHJv
cGVydHlOYW1lKTsKICAgICBpZiAob2JqZWN0ICYmIG9iamVjdC5pc0dldHRlclNldHRlcigpKSB7
CkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBKU09iamVjdDo6ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU08KIAogICAgIFB1dFBy
b3BlcnR5U2xvdCBzbG90OwogICAgIEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gbmV3IChl
eGVjKSBHZXR0ZXJTZXR0ZXIoZXhlYyk7Ci0gICAgcHV0RGlyZWN0SW50ZXJuYWwoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwgU2V0dGVyLCB0cnVlLCBzbG90
KTsKKyAgICBwdXREaXJlY3RJbnRlcm5hbChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFt
ZSwgZ2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzIHwgU2V0dGVyLCB0cnVlLCBzbG90KTsKIAogICAg
IC8vIHB1dERpcmVjdCB3aWxsIGNoYW5nZSBvdXIgU3RydWN0dXJlIGlmIHdlIGFkZCBhIG5ldyBw
cm9wZXJ0eS4gRm9yCiAgICAgLy8gZ2V0dGVycyBhbmQgc2V0dGVycywgdGhvdWdoLCB3ZSBhbHNv
IG5lZWQgdG8gY2hhbmdlIG91ciBTdHJ1Y3R1cmUKQEAgLTU0MSw0ICs1NDEsMTMxIEBAIGJvb2wg
SlNPYmplY3Q6OmdldFByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5CiAgICAgICAgIG9iamVjdCA9IGFzT2JqZWN0KHByb3RvdHlwZSk7
CiAgICAgfQogfQorCitzdGF0aWMgYm9vbCBwdXREZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRhcmdldCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTVmFsdWUgb2xk
VmFsdWUpCit7CisgICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpIHx8IGRl
c2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAgIHRhcmdldC0+cHV0V2l0aEF0
dHJpYnV0ZXMoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCkgPyBkZXNjcmlw
dG9yLnZhbHVlKCkgOiBvbGRWYWx1ZSwgYXR0cmlidXRlcyAmIH4oR2V0dGVyIHwgU2V0dGVyKSk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBhdHRyaWJ1dGVzICY9IH5SZWFkT25s
eTsKKyAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXIoKSAmJiBkZXNjcmlwdG9yLmdldHRlcigpLmlz
T2JqZWN0KCkpCisgICAgICAgIHRhcmdldC0+ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgYXNPYmplY3QoZGVzY3JpcHRvci5nZXR0ZXIoKSksIGF0dHJpYnV0ZXMpOworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChkZXNj
cmlwdG9yLnNldHRlcigpICYmIGRlc2NyaXB0b3Iuc2V0dGVyKCkuaXNPYmplY3QoKSkKKyAgICAg
ICAgdGFyZ2V0LT5kZWZpbmVTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBhc09iamVjdChkZXNj
cmlwdG9yLnNldHRlcigpKSwgYXR0cmlidXRlcyk7CisgICAgcmV0dXJuICFleGVjLT5oYWRFeGNl
cHRpb24oKTsKK30KKworYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgYm9vbCB0aHJvd0V4Y2VwdGlvbikKK3sKKyAgICAvLyBJZiB3ZSBoYXZl
IGEgbmV3IHByb3BlcnR5IHdlIGNhbiBqdXN0IHB1dCBpdCBvbiBub3JtYWxseQorICAgIFByb3Bl
cnR5RGVzY3JpcHRvciBjdXJyZW50OworICAgIGlmICghZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGV4ZWMsIHByb3BlcnR5TmFtZSwgY3VycmVudCkpCisgICAgICAgIHJldHVybiBwdXREZXNjcmlw
dG9yKGV4ZWMsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRy
aWJ1dGVzKCksIGpzVW5kZWZpbmVkKCkpOworCisgICAgaWYgKGRlc2NyaXB0b3IuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChjdXJyZW50LmVxdWFsVG8oZGVzY3Jp
cHRvcikpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gRmlsdGVyIG91dCBpbnZhbGlk
IGNoYW5nZXMKKyAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKKyAgICAgICAgaWYg
KGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpIHsKKyAgICAgICAgICAgIGlmICh0aHJvd0V4Y2Vw
dGlvbikKKyAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIkF0dGVt
cHRpbmcgdG8gY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0
eS4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgp
ICE9IGN1cnJlbnQuZW51bWVyYWJsZSgpKSB7CisgICAgICAgICAgICBpZiAodGhyb3dFeGNlcHRp
b24pCisgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJBdHRlbXB0
aW5nIHRvIGNoYW5nZSBlbnVtZXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9w
ZXJ0eS4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIC8vIEEgZ2VuZXJpYyBkZXNjcmlwdG9yIGlzIHNpbXBseSBjaGFuZ2luZyB0aGUgYXR0cmli
dXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQorICAgIGlmIChkZXNjcmlwdG9yLmlzR2VuZXJp
Y0Rlc2NyaXB0b3IoKSkgeworICAgICAgICBpZiAoIWN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRl
c2NyaXB0b3IpKSB7CisgICAgICAgICAgICBkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5h
bWUpOworICAgICAgICAgICAgcHV0RGVzY3JpcHRvcihleGVjLCB0aGlzLCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IsIGN1cnJlbnQuYXR0cmlidXRlc1dpdGhPdmVycmlkZShkZXNjcmlwdG9yKSwg
Y3VycmVudC52YWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICAvLyBDaGFuZ2luZyBiZXR3ZWVuIGEgbm9ybWFsIHByb3BlcnR5IG9yIGFuIGFjY2Vz
c29yIHByb3BlcnR5CisgICAgaWYgKGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpICE9IGN1
cnJlbnQuaXNEYXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAgIGlmICghY3VycmVudC5jb25maWd1
cmFibGUoKSkgeworICAgICAgICAgICAgaWYgKHRocm93RXhjZXB0aW9uKQorICAgICAgICAgICAg
ICAgIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgYWNj
ZXNzIG1lY2hhbmlzbSBmb3IgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIik7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZGVsZXRlUHJvcGVydHkoZXhl
YywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhp
cywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3ZlcnJp
ZGUoZGVzY3JpcHRvciksIGN1cnJlbnQudmFsdWUoKSA/IGN1cnJlbnQudmFsdWUoKSA6IGpzVW5k
ZWZpbmVkKCkpOworICAgIH0KKworICAgIC8vIENoYW5naW5nIHRoZSB2YWx1ZSBhbmQgYXR0cmli
dXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQorICAgIGlmIChkZXNjcmlwdG9yLmlzRGF0YURl
c2NyaXB0b3IoKSkgeworICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKKyAg
ICAgICAgICAgIGlmICghY3VycmVudC53cml0YWJsZSgpICYmIGRlc2NyaXB0b3Iud3JpdGFibGUo
KSkgeworICAgICAgICAgICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikKKyAgICAgICAgICAgICAg
ICAgICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB3
cml0YWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuIik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFj
dXJyZW50LndyaXRhYmxlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1
ZSgpIHx8ICFKU1ZhbHVlOjpzdHJpY3RFcXVhbChjdXJyZW50LnZhbHVlKCksIGRlc2NyaXB0b3Iu
dmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRocm93RXhjZXB0aW9uKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJBdHRlbXB0
aW5nIHRvIGNoYW5nZSB2YWx1ZSBvZiBhIHJlYWRvbmx5IHByb3BlcnR5LiIpOworICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3Ip
KSB7CisgICAgICAgICAgICBpZiAoIWRlc2NyaXB0b3IudmFsdWUoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OworICAgICAg
ICAgICAgcHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci52YWx1ZSgpLCBzbG90KTsK
KyAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICBkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICByZXR1cm4gcHV0
RGVzY3JpcHRvcihleGVjLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGN1cnJlbnQu
YXR0cmlidXRlc1dpdGhPdmVycmlkZShkZXNjcmlwdG9yKSwgY3VycmVudC52YWx1ZSgpKTsKKyAg
ICB9CisKKyAgICAvLyBDaGFuZ2luZyB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIG9mIGFuIGV4aXN0
aW5nIGFjY2Vzc29yIHByb3BlcnR5CisgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRl
c2NyaXB0b3IoKSk7CisgICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7CisgICAgICAg
IGlmIChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSAmJiAhKGN1cnJlbnQuc2V0dGVyKCkgJiYg
SlNWYWx1ZTo6c3RyaWN0RXF1YWwoY3VycmVudC5zZXR0ZXIoKSwgZGVzY3JpcHRvci5zZXR0ZXIo
KSkpKSB7CisgICAgICAgICAgICBpZiAodGhyb3dFeGNlcHRpb24pCisgICAgICAgICAgICAgICAg
dGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgc2V0
dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChkZXNjcmlwdG9yLmdldHRlclByZXNlbnQo
KSAmJiAhKGN1cnJlbnQuZ2V0dGVyKCkgJiYgSlNWYWx1ZTo6c3RyaWN0RXF1YWwoY3VycmVudC5n
ZXR0ZXIoKSwgZGVzY3JpcHRvci5nZXR0ZXIoKSkpKSB7CisgICAgICAgICAgICBpZiAodGhyb3dF
eGNlcHRpb24pCisgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJB
dHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgZ2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3Bl
cnR5LiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAg
IEpTVmFsdWUgYWNjZXNzb3IgPSBnZXREaXJlY3QocHJvcGVydHlOYW1lKTsKKyAgICBpZiAoIWFj
Y2Vzc29yKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJT
ZXR0ZXIgPSBhc0dldHRlclNldHRlcihhY2Nlc3Nvcik7CisgICAgaWYgKGN1cnJlbnQuYXR0cmli
dXRlc0VxdWFsKGRlc2NyaXB0b3IpKSB7CisgICAgICAgIGlmIChkZXNjcmlwdG9yLnNldHRlcigp
KQorICAgICAgICAgICAgZ2V0dGVyU2V0dGVyLT5zZXRTZXR0ZXIoYXNPYmplY3QoZGVzY3JpcHRv
ci5zZXR0ZXIoKSkpOworICAgICAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXIoKSkKKyAgICAgICAg
ICAgIGdldHRlclNldHRlci0+c2V0R2V0dGVyKGFzT2JqZWN0KGRlc2NyaXB0b3IuZ2V0dGVyKCkp
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGRlbGV0ZVByb3BlcnR5KGV4ZWMs
IHByb3BlcnR5TmFtZSk7CisgICAgdW5zaWduZWQgYXR0cnMgPSBjdXJyZW50LmF0dHJpYnV0ZXNX
aXRoT3ZlcnJpZGUoZGVzY3JpcHRvcik7CisgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVyKCkpCisg
ICAgICAgIGF0dHJzIHw9IFNldHRlcjsKKyAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXIoKSkKKyAg
ICAgICAgYXR0cnMgfD0gR2V0dGVyOworICAgIHB1dERpcmVjdChwcm9wZXJ0eU5hbWUsIGdldHRl
clNldHRlciwgYXR0cnMpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBiZGM5NDliLi5hZWM2MjVlIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xODYsMTAgKzE4NiwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICB2b2lkIGZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90
JiwgSlNWYWx1ZSogbG9jYXRpb24pOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0
ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
Z2V0dGVyRnVuY3Rpb24pOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lU2V0dGVyKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1
bmN0aW9uKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwg
dW5zaWduZWQgYXR0cmlidXRlcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVTZXR0ZXIo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIEpTVmFs
dWUgbG9va3VwR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBTZXR0ZXIoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgdmlydHVhbCBib29sIGRlZmlu
ZU93blByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGlzR2xvYmFsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAg
dmlydHVhbCBib29sIGlzVmFyaWFibGVPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBmZDQ1
YzQ1Li45NDNmODQzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmNwcApAQCAtMzcsNiArMzcsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE9iamVj
dENvbnN0cnVjdG9yKTsKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3Ry
dWN0b3JHZXRQcm90b3R5cGVPZihFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0
IEFyZ0xpc3QmKTsKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0
b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVl
LCBjb25zdCBBcmdMaXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yS2V5cyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xp
c3QmKTsKK3N0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZp
bmVQcm9wZXJ0eShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3Qm
KTsKIAogT2JqZWN0Q29uc3RydWN0b3I6Ok9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgT2JqZWN0UHJvdG90eXBlKiBvYmpl
Y3RQcm90b3R5cGUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUpCiA6IElu
dGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBJZGVudGlmaWVy
KGV4ZWMsICJPYmplY3QiKSkKQEAgLTUwLDYgKzUxLDcgQEAgT2JqZWN0Q29uc3RydWN0b3I6Ok9i
amVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0
cnUKICAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhl
YykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJl
LCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0UHJvdG90eXBlT2YsIG9iamVjdENvbnN0cnVj
dG9yR2V0UHJvdG90eXBlT2YpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVj
LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdl
dE93blByb3BlcnR5RGVzY3JpcHRvciwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNp
dGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5
cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmtleXMsIG9iamVj
dENvbnN0cnVjdG9yS2V5cyksIERvbnRFbnVtKTsKKyAgICAgICAgcHV0RGlyZWN0RnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihl
eGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMywgZXhlYy0+cHJvcGVydHlOYW1lcygp
LmRlZmluZVByb3BlcnR5LCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5KSwgRG9udEVu
dW0pOwogfQogCiAvLyBFQ01BIDE1LjIuMgpAQCAtMTAzLDE1ICsxMDUsMTQgQEAgSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBB
U1NFUlQoZGVzY3JpcHRvci5pc1ZhbGlkKCkpOwogCiAgICAgSlNPYmplY3QqIGRlc2NyaXB0aW9u
ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYyk7Ci0gICAgaWYgKCFkZXNjcmlwdG9yLmhhc0Fj
Y2Vzc29ycygpKSB7Ci0gICAgICAgIGRlc2NyaXB0aW9uLT5wdXREaXJlY3QoZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnZhbHVlLCBkZXNjcmlwdG9yLnZhbHVlKCksIDApOworICAgIGlmICghZGVzY3Jp
cHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKSB7CisgICAgICAgIGRlc2NyaXB0aW9uLT5wdXRE
aXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnZhbHVlLCBkZXNjcmlwdG9yLnZhbHVlKCkgPyBk
ZXNjcmlwdG9yLnZhbHVlKCkgOiBqc1VuZGVmaW5lZCgpLCAwKTsKICAgICAgICAgZGVzY3JpcHRp
b24tPnB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkud3JpdGFibGUsIGpzQm9vbGVhbihk
ZXNjcmlwdG9yLndyaXRhYmxlKCkpLCAwKTsKICAgICB9IGVsc2UgewotICAgICAgICBkZXNjcmlw
dGlvbi0+cHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZXQsIGRlc2NyaXB0b3IuZ2V0
dGVyKCksIDApOwotICAgICAgICBkZXNjcmlwdGlvbi0+cHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5zZXQsIGRlc2NyaXB0b3Iuc2V0dGVyKCksIDApOworICAgICAgICBkZXNjcmlwdGlv
bi0+cHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZXQsIGRlc2NyaXB0b3IuZ2V0dGVy
KCkgPyBkZXNjcmlwdG9yLmdldHRlcigpIDoganNVbmRlZmluZWQoKSwgMCk7CisgICAgICAgIGRl
c2NyaXB0aW9uLT5wdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnNldCwgZGVzY3JpcHRv
ci5zZXR0ZXIoKSA/IGRlc2NyaXB0b3Iuc2V0dGVyKCkgOiBqc1VuZGVmaW5lZCgpLCAwKTsKICAg
ICB9CiAgICAgCiAgICAgZGVzY3JpcHRpb24tPnB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuZW51bWVyYWJsZSwganNCb29sZWFuKGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKSwgMCk7CkBA
IC0xMzMsNCArMTM0LDEwNyBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0
b3JLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBKU1ZhbHVlLAogICAgIHJldHVybiBr
ZXlzOwogfQogCisvLyBFUzUgOC4xMC41IFRvUHJvcGVydHlEZXNjcmlwdG9yCitzdGF0aWMgYm9v
bCB0b1Byb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgaW4sIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzYykKK3sKKyAgICBpZiAoIWluLmlzT2JqZWN0KCkpIHsKKyAgICAg
ICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJQcm9wZXJ0eSBkZXNjcmlwdGlvbiBtdXN0
IGJlIGFuIG9iamVjdC4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBKU09i
amVjdCogZGVzY3JpcHRpb24gPSBhc09iamVjdChpbik7CisKKyAgICBQcm9wZXJ0eVNsb3QgZW51
bWVyYWJsZVNsb3Q7CisgICAgaWYgKGRlc2NyaXB0aW9uLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmVudW1lcmFibGUsIGVudW1lcmFibGVTbG90KSkgeworICAg
ICAgICBkZXNjLnNldEVudW1lcmFibGUoZW51bWVyYWJsZVNsb3QuZ2V0VmFsdWUoZXhlYywgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmVudW1lcmFibGUpLnRvQm9vbGVhbihleGVjKSk7CisgICAgICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICBQcm9wZXJ0eVNsb3QgY29uZmlndXJhYmxlU2xvdDsKKyAgICBpZiAoZGVzY3Jp
cHRpb24tPmdldFByb3BlcnR5U2xvdChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uZmln
dXJhYmxlLCBjb25maWd1cmFibGVTbG90KSkgeworICAgICAgICBkZXNjLnNldENvbmZpZ3VyYWJs
ZShjb25maWd1cmFibGVTbG90LmdldFZhbHVlKGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5j
b25maWd1cmFibGUpLnRvQm9vbGVhbihleGVjKSk7CisgICAgICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBKU1ZhbHVl
IHZhbHVlOworICAgIFByb3BlcnR5U2xvdCB2YWx1ZVNsb3Q7CisgICAgaWYgKGRlc2NyaXB0aW9u
LT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLnZhbHVlLCB2YWx1
ZVNsb3QpKSB7CisgICAgICAgIGRlc2Muc2V0VmFsdWUodmFsdWVTbG90LmdldFZhbHVlKGV4ZWMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS52YWx1ZSkpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUHJvcGVy
dHlTbG90IHdyaXRhYmxlU2xvdDsKKyAgICBpZiAoZGVzY3JpcHRpb24tPmdldFByb3BlcnR5U2xv
dChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkud3JpdGFibGUsIHdyaXRhYmxlU2xvdCkpIHsK
KyAgICAgICAgZGVzYy5zZXRXcml0YWJsZSh3cml0YWJsZVNsb3QuZ2V0VmFsdWUoZXhlYywgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLndyaXRhYmxlKS50b0Jvb2xlYW4oZXhlYykpOworICAgICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgUHJvcGVydHlTbG90IGdldFNsb3Q7CisgICAgaWYgKGRlc2NyaXB0aW9uLT5nZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldCwgZ2V0U2xvdCkpIHsK
KyAgICAgICAgSlNWYWx1ZSBnZXQgPSBnZXRTbG90LmdldFZhbHVlKGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5nZXQpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZ2V0LmlzVW5kZWZpbmVkKCkpIHsK
KyAgICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgICAgICAgICAgaWYgKGdldC5nZXRD
YWxsRGF0YShjYWxsRGF0YSkgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAgICAgICAgICAgdGhy
b3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJHZXR0ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBnZXQgPSBKU1ZhbHVlKCk7CisgICAgICAgIGRlc2Muc2V0R2V0dGVy
KGdldCk7CisgICAgfQorCisgICAgUHJvcGVydHlTbG90IHNldFNsb3Q7CisgICAgaWYgKGRlc2Ny
aXB0aW9uLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLnNldCwg
c2V0U2xvdCkpIHsKKyAgICAgICAgSlNWYWx1ZSBzZXQgPSBzZXRTbG90LmdldFZhbHVlKGV4ZWMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5zZXQpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghc2V0LmlzVW5k
ZWZpbmVkKCkpIHsKKyAgICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgICAgICAgICAg
aWYgKHNldC5nZXRDYWxsRGF0YShjYWxsRGF0YSkgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAg
ICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJTZXR0ZXIgbXVzdCBiZSBhIGZ1
bmN0aW9uLiIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzZXQgPSBKU1ZhbHVlKCk7CisKKyAgICAgICAg
ZGVzYy5zZXRTZXR0ZXIoc2V0KTsKKyAgICB9CisKKyAgICBpZiAoIWRlc2MuaXNBY2Nlc3NvckRl
c2NyaXB0b3IoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoZGVzYy52YWx1ZSgp
KSB7CisgICAgICAgIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiSW52YWxpZCBwcm9wZXJ0
eS4gICd2YWx1ZScgcHJlc2VudCBvbiBwcm9wZXJ0eSB3aXRoIGdldHRlciBvciBzZXR0ZXIuIik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZGVzYy53cml0YWJsZVBy
ZXNlbnQoKSkgeworICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIkludmFsaWQg
cHJvcGVydHkuICAnd3JpdGFibGUnIHByZXNlbnQgb24gcHJvcGVydHkgd2l0aCBnZXR0ZXIgb3Ig
c2V0dGVyLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9w
ZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYg
YXJncykKK3sKKyAgICBpZiAoIWFyZ3MuYXQoMCkuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiUHJvcGVydGllcyBjYW4gb25seSBiZSBkZWZp
bmVkIG9uIE9iamVjdHMuIik7CisgICAgSlNPYmplY3QqIE8gPSBhc09iamVjdChhcmdzLmF0KDAp
KTsKKyAgICBVU3RyaW5nIHByb3BlcnR5TmFtZSA9IGFyZ3MuYXQoMSkudG9TdHJpbmcoZXhlYyk7
CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7
CisgICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CisgICAgaWYgKCF0b1Byb3BlcnR5
RGVzY3JpcHRvcihleGVjLCBhcmdzLmF0KDIpLCBkZXNjcmlwdG9yKSkKKyAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOworICAgIEFTU0VSVCgoZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgJiAoR2V0dGVy
IHwgU2V0dGVyKSkgfHwgKCFkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpKTsKKyAg
ICBBU1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKKyAgICBPLT5kZWZpbmVPd25Qcm9wZXJ0
eShleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHByb3BlcnR5TmFtZSksIGRlc2NyaXB0b3IsIHRydWUp
OworICAgIHJldHVybiBPOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCBmY2NjNDRhLi42MDllNmI5IDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC0xMTMsNyArMTEz
LDcgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlMKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAg
ICBpZiAoYXJncy5hdCgxKS5nZXRDYWxsRGF0YShjYWxsRGF0YSkgPT0gQ2FsbFR5cGVOb25lKQog
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgImludmFsaWQgZ2V0
dGVyIHVzYWdlIik7Ci0gICAgdGhpc1ZhbHVlLnRvVGhpc09iamVjdChleGVjKS0+ZGVmaW5lR2V0
dGVyKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSksIGFz
T2JqZWN0KGFyZ3MuYXQoMSkpKTsKKyAgICB0aGlzVmFsdWUudG9UaGlzT2JqZWN0KGV4ZWMpLT5k
ZWZpbmVHZXR0ZXIoZXhlYywgSWRlbnRpZmllcihleGVjLCBhcmdzLmF0KDApLnRvU3RyaW5nKGV4
ZWMpKSwgYXNPYmplY3QoYXJncy5hdCgxKSksIDApOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogfQogCkBAIC0xMjIsNyArMTIyLDcgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFBy
b3RvRnVuY0RlZmluZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlMKICAgICBD
YWxsRGF0YSBjYWxsRGF0YTsKICAgICBpZiAoYXJncy5hdCgxKS5nZXRDYWxsRGF0YShjYWxsRGF0
YSkgPT0gQ2FsbFR5cGVOb25lKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50
YXhFcnJvciwgImludmFsaWQgc2V0dGVyIHVzYWdlIik7Ci0gICAgdGhpc1ZhbHVlLnRvVGhpc09i
amVjdChleGVjKS0+ZGVmaW5lU2V0dGVyKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgw
KS50b1N0cmluZyhleGVjKSksIGFzT2JqZWN0KGFyZ3MuYXQoMSkpKTsKKyAgICB0aGlzVmFsdWUu
dG9UaGlzT2JqZWN0KGV4ZWMpLT5kZWZpbmVTZXR0ZXIoZXhlYywgSWRlbnRpZmllcihleGVjLCBh
cmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpKSwgYXNPYmplY3QoYXJncy5hdCgxKSksIDApOwogICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5RGVzY3JpcHRvci5jcHAKaW5kZXggZDg5MmUwYS4uNGRiODE0ZiAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcApAQCAtMzAsMjkgKzMwLDQw
IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7Cit1bnNpZ25lZCBQcm9w
ZXJ0eURlc2NyaXB0b3I6OmRlZmF1bHRBdHRyaWJ1dGVzID0gKERvbnREZWxldGUgPDwgMSkgLSAx
OworCiBib29sIFByb3BlcnR5RGVzY3JpcHRvcjo6d3JpdGFibGUoKSBjb25zdAogewotICAgIEFT
U0VSVCghaGFzQWNjZXNzb3JzKCkpOworICAgIEFTU0VSVCghaXNBY2Nlc3NvckRlc2NyaXB0b3Io
KSk7CiAgICAgcmV0dXJuICEobV9hdHRyaWJ1dGVzICYgUmVhZE9ubHkpOwogfQogCiBib29sIFBy
b3BlcnR5RGVzY3JpcHRvcjo6ZW51bWVyYWJsZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlzVmFs
aWQoKSk7CiAgICAgcmV0dXJuICEobV9hdHRyaWJ1dGVzICYgRG9udEVudW0pOwogfQogCiBib29s
IFByb3BlcnR5RGVzY3JpcHRvcjo6Y29uZmlndXJhYmxlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQo
aXNWYWxpZCgpKTsKICAgICByZXR1cm4gIShtX2F0dHJpYnV0ZXMgJiBEb250RGVsZXRlKTsKIH0K
IAotYm9vbCBQcm9wZXJ0eURlc2NyaXB0b3I6Omhhc0FjY2Vzc29ycygpIGNvbnN0Citib29sIFBy
b3BlcnR5RGVzY3JpcHRvcjo6aXNEYXRhRGVzY3JpcHRvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
ICEhKG1fYXR0cmlidXRlcyAmIChHZXR0ZXIgfCBTZXR0ZXIpKTsKKyAgICByZXR1cm4gbV92YWx1
ZSB8fCAobV9zZWVuQXR0cmlidXRlcyAmIFdyaXRhYmxlUHJlc2VudCk7Cit9CisKK2Jvb2wgUHJv
cGVydHlEZXNjcmlwdG9yOjppc0dlbmVyaWNEZXNjcmlwdG9yKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gIWlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYgIWlzRGF0YURlc2NyaXB0b3IoKTsKK30KKwor
Ym9vbCBQcm9wZXJ0eURlc2NyaXB0b3I6OmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9nZXR0ZXIgfHwgbV9zZXR0ZXI7CiB9CiAKIHZvaWQgUHJvcGVydHlEZXNj
cmlwdG9yOjpzZXRVbmRlZmluZWQoKQpAQCAtNjMsMzIgKzc0LDMxIEBAIHZvaWQgUHJvcGVydHlE
ZXNjcmlwdG9yOjpzZXRVbmRlZmluZWQoKQogCiBKU1ZhbHVlIFByb3BlcnR5RGVzY3JpcHRvcjo6
Z2V0dGVyKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaGFzQWNjZXNzb3JzKCkpOwotICAgIGlmICgh
bV9nZXR0ZXIpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIEFTU0VSVChpc0Fj
Y2Vzc29yRGVzY3JpcHRvcigpKTsKICAgICByZXR1cm4gbV9nZXR0ZXI7CiB9CiAKIEpTVmFsdWUg
UHJvcGVydHlEZXNjcmlwdG9yOjpzZXR0ZXIoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNBY2Nl
c3NvcnMoKSk7Ci0gICAgaWYgKCFtX3NldHRlcikKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgQVNTRVJUKGlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpOwogICAgIHJldHVybiBtX3Nl
dHRlcjsKIH0KIAogdm9pZCBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldERlc2NyaXB0b3IoSlNWYWx1
ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBBU1NFUlQodmFsdWUpOworICAg
IG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CiAgICAgaWYgKGF0dHJpYnV0ZXMgJiAoR2V0dGVy
IHwgU2V0dGVyKSkgewogICAgICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gYXNHZXR0ZXJT
ZXR0ZXIodmFsdWUpOwogICAgICAgICBtX2dldHRlciA9IGFjY2Vzc29yLT5nZXR0ZXIoKTsKICAg
ICAgICAgbV9zZXR0ZXIgPSBhY2Nlc3Nvci0+c2V0dGVyKCk7CiAgICAgICAgIEFTU0VSVChtX2dl
dHRlciB8fCBtX3NldHRlcik7CisgICAgICAgIG1fc2VlbkF0dHJpYnV0ZXMgPSBFbnVtZXJhYmxl
UHJlc2VudCB8IENvbmZpZ3VyYWJsZVByZXNlbnQ7CisgICAgICAgIG1fYXR0cmlidXRlcyAmPSB+
UmVhZE9ubHk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV92YWx1ZSA9IHZhbHVlOworICAgICAg
ICBtX3NlZW5BdHRyaWJ1dGVzID0gRW51bWVyYWJsZVByZXNlbnQgfCBDb25maWd1cmFibGVQcmVz
ZW50IHwgV3JpdGFibGVQcmVzZW50OwogICAgIH0KLSAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1
dGVzOwogfQogCiB2b2lkIFByb3BlcnR5RGVzY3JpcHRvcjo6c2V0QWNjZXNzb3JEZXNjcmlwdG9y
KEpTVmFsdWUgZ2V0dGVyLCBKU1ZhbHVlIHNldHRlciwgdW5zaWduZWQgYXR0cmlidXRlcykKQEAg
LTk4LDYgKzEwOCw4OCBAQCB2b2lkIFByb3BlcnR5RGVzY3JpcHRvcjo6c2V0QWNjZXNzb3JEZXNj
cmlwdG9yKEpTVmFsdWUgZ2V0dGVyLCBKU1ZhbHVlIHNldHRlciwgdQogICAgIG1fYXR0cmlidXRl
cyA9IGF0dHJpYnV0ZXM7CiAgICAgbV9nZXR0ZXIgPSBnZXR0ZXI7CiAgICAgbV9zZXR0ZXIgPSBz
ZXR0ZXI7CisgICAgbV9hdHRyaWJ1dGVzICY9IH5SZWFkT25seTsKKyAgICBtX3NlZW5BdHRyaWJ1
dGVzID0gRW51bWVyYWJsZVByZXNlbnQgfCBDb25maWd1cmFibGVQcmVzZW50OworfQorCit2b2lk
IFByb3BlcnR5RGVzY3JpcHRvcjo6c2V0V3JpdGFibGUoYm9vbCB3cml0YWJsZSkKK3sKKyAgICBp
ZiAod3JpdGFibGUpCisgICAgICAgIG1fYXR0cmlidXRlcyAmPSB+UmVhZE9ubHk7CisgICAgZWxz
ZQorICAgICAgICBtX2F0dHJpYnV0ZXMgfD0gUmVhZE9ubHk7CisgICAgbV9zZWVuQXR0cmlidXRl
cyB8PSBXcml0YWJsZVByZXNlbnQ7Cit9CisKK3ZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXRF
bnVtZXJhYmxlKGJvb2wgZW51bWVyYWJsZSkKK3sKKyAgICBpZiAoZW51bWVyYWJsZSkKKyAgICAg
ICAgbV9hdHRyaWJ1dGVzICY9IH5Eb250RW51bTsKKyAgICBlbHNlCisgICAgICAgIG1fYXR0cmli
dXRlcyB8PSBEb250RW51bTsKKyAgICBtX3NlZW5BdHRyaWJ1dGVzIHw9IEVudW1lcmFibGVQcmVz
ZW50OworfQorCit2b2lkIFByb3BlcnR5RGVzY3JpcHRvcjo6c2V0Q29uZmlndXJhYmxlKGJvb2wg
Y29uZmlndXJhYmxlKQoreworICAgIGlmIChjb25maWd1cmFibGUpCisgICAgICAgIG1fYXR0cmli
dXRlcyAmPSB+RG9udERlbGV0ZTsKKyAgICBlbHNlCisgICAgICAgIG1fYXR0cmlidXRlcyB8PSBE
b250RGVsZXRlOworICAgIG1fc2VlbkF0dHJpYnV0ZXMgfD0gQ29uZmlndXJhYmxlUHJlc2VudDsK
K30KKwordm9pZCBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldFNldHRlcihKU1ZhbHVlIHNldHRlcikK
K3sKKyAgICBtX3NldHRlciA9IHNldHRlcjsKKyAgICBtX2F0dHJpYnV0ZXMgfD0gU2V0dGVyOwor
ICAgIG1fYXR0cmlidXRlcyAmPSB+UmVhZE9ubHk7Cit9CisKK3ZvaWQgUHJvcGVydHlEZXNjcmlw
dG9yOjpzZXRHZXR0ZXIoSlNWYWx1ZSBnZXR0ZXIpCit7CisgICAgbV9nZXR0ZXIgPSBnZXR0ZXI7
CisgICAgbV9hdHRyaWJ1dGVzIHw9IEdldHRlcjsKKyAgICBtX2F0dHJpYnV0ZXMgJj0gflJlYWRP
bmx5OworfQorCitib29sIFByb3BlcnR5RGVzY3JpcHRvcjo6ZXF1YWxUbyhjb25zdCBQcm9wZXJ0
eURlc2NyaXB0b3ImIG90aGVyKSBjb25zdAoreworICAgIGlmICghb3RoZXIubV92YWx1ZSA9PSBt
X3ZhbHVlIHx8CisgICAgICAgICFvdGhlci5tX2dldHRlciA9PSBtX2dldHRlciB8fAorICAgICAg
ICAhb3RoZXIubV9zZXR0ZXIgPT0gbV9zZXR0ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gKCFtX3ZhbHVlIHx8IEpTVmFsdWU6OnN0cmljdEVxdWFsKG90aGVyLm1fdmFsdWUs
IG1fdmFsdWUpKSAmJiAKKyAgICAgICAgICAgKCFtX2dldHRlciB8fCBKU1ZhbHVlOjpzdHJpY3RF
cXVhbChvdGhlci5tX2dldHRlciwgbV9nZXR0ZXIpKSAmJiAKKyAgICAgICAgICAgKCFtX3NldHRl
ciB8fCBKU1ZhbHVlOjpzdHJpY3RFcXVhbChvdGhlci5tX3NldHRlciwgbV9zZXR0ZXIpKSAmJgor
ICAgICAgICAgICBhdHRyaWJ1dGVzRXF1YWwob3RoZXIpOworfQorCitib29sIFByb3BlcnR5RGVz
Y3JpcHRvcjo6YXR0cmlidXRlc0VxdWFsKGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgb3RoZXIp
IGNvbnN0Cit7CisgICAgdW5zaWduZWQgbWlzbWF0Y2ggPSBvdGhlci5tX2F0dHJpYnV0ZXMgXiBt
X2F0dHJpYnV0ZXM7CisgICAgdW5zaWduZWQgc2hhcmVkU2VlbiA9IG90aGVyLm1fc2VlbkF0dHJp
YnV0ZXMgJiBtX3NlZW5BdHRyaWJ1dGVzOworICAgIGlmIChzaGFyZWRTZWVuICYgV3JpdGFibGVQ
cmVzZW50ICYmIG1pc21hdGNoICYgUmVhZE9ubHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoc2hhcmVkU2VlbiAmIENvbmZpZ3VyYWJsZVByZXNlbnQgJiYgbWlzbWF0Y2ggJiBEb250
RGVsZXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHNoYXJlZFNlZW4gJiBFbnVt
ZXJhYmxlUHJlc2VudCAmJiBtaXNtYXRjaCAmIERvbnRFbnVtKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Vuc2lnbmVkIFByb3BlcnR5RGVzY3JpcHRvcjo6
YXR0cmlidXRlc1dpdGhPdmVycmlkZShjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIG90aGVyKSBj
b25zdAoreworICAgIHVuc2lnbmVkIG1pc21hdGNoID0gb3RoZXIubV9hdHRyaWJ1dGVzIF4gbV9h
dHRyaWJ1dGVzOworICAgIHVuc2lnbmVkIHNoYXJlZFNlZW4gPSBvdGhlci5tX3NlZW5BdHRyaWJ1
dGVzICYgbV9zZWVuQXR0cmlidXRlczsKKyAgICB1bnNpZ25lZCBuZXdBdHRyaWJ1dGVzID0gbV9h
dHRyaWJ1dGVzICYgZGVmYXVsdEF0dHJpYnV0ZXM7CisgICAgaWYgKHNoYXJlZFNlZW4gJiBXcml0
YWJsZVByZXNlbnQgJiYgbWlzbWF0Y2ggJiBSZWFkT25seSkKKyAgICAgICAgbmV3QXR0cmlidXRl
cyBePSBSZWFkT25seTsKKyAgICBpZiAoc2hhcmVkU2VlbiAmIENvbmZpZ3VyYWJsZVByZXNlbnQg
JiYgbWlzbWF0Y2ggJiBEb250RGVsZXRlKQorICAgICAgICBuZXdBdHRyaWJ1dGVzIF49IERvbnRE
ZWxldGU7CisgICAgaWYgKHNoYXJlZFNlZW4gJiBFbnVtZXJhYmxlUHJlc2VudCAmJiBtaXNtYXRj
aCAmIERvbnRFbnVtKQorICAgICAgICBuZXdBdHRyaWJ1dGVzIF49IERvbnRFbnVtOworICAgIHJl
dHVybiBuZXdBdHRyaWJ1dGVzOwogfQogCiB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eURlc2NyaXB0b3IuaAppbmRleCBhZDdjMDU2Li40MGJlYzg2IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCisrKyBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKQEAgLTMyLDI5ICszMiw0OCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBjbGFzcyBQcm9wZXJ0eURlc2NyaXB0b3IgewogICAgIHB1YmxpYzoK
ICAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yKCkKLSAgICAgICAgICAgIDogbV9hdHRyaWJ1dGVz
KDApCisgICAgICAgICAgICA6IG1fYXR0cmlidXRlcyhkZWZhdWx0QXR0cmlidXRlcykKKyAgICAg
ICAgICAgICwgbV9zZWVuQXR0cmlidXRlcygwKQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAg
ICAgYm9vbCB3cml0YWJsZSgpIGNvbnN0OwogICAgICAgICBib29sIGVudW1lcmFibGUoKSBjb25z
dDsKICAgICAgICAgYm9vbCBjb25maWd1cmFibGUoKSBjb25zdDsKLSAgICAgICAgYm9vbCBoYXNB
Y2Nlc3NvcnMoKSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0RhdGFEZXNjcmlwdG9yKCkgY29uc3Q7
CisgICAgICAgIGJvb2wgaXNHZW5lcmljRGVzY3JpcHRvcigpIGNvbnN0OworICAgICAgICBib29s
IGlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0
ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZXM7IH0KLSNpZm5kZWYgTkRFQlVHCi0gICAg
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgfHwgKChtX2dldHRlciB8
fCBtX3NldHRlcikgJiYgaGFzQWNjZXNzb3JzKCkpOyB9Ci0jZW5kaWYKLSAgICAgICAgSlNWYWx1
ZSB2YWx1ZSgpIGNvbnN0IHsgQVNTRVJUKG1fdmFsdWUpOyByZXR1cm4gbV92YWx1ZTsgfQorICAg
ICAgICBKU1ZhbHVlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgICAgICBK
U1ZhbHVlIGdldHRlcigpIGNvbnN0OwogICAgICAgICBKU1ZhbHVlIHNldHRlcigpIGNvbnN0Owog
ICAgICAgICB2b2lkIHNldFVuZGVmaW5lZCgpOwogICAgICAgICB2b2lkIHNldERlc2NyaXB0b3Io
SlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZvaWQgc2V0QWNj
ZXNzb3JEZXNjcmlwdG9yKEpTVmFsdWUgZ2V0dGVyLCBKU1ZhbHVlIHNldHRlciwgdW5zaWduZWQg
YXR0cmlidXRlcyk7CisgICAgICAgIHZvaWQgc2V0V3JpdGFibGUoYm9vbCk7CisgICAgICAgIHZv
aWQgc2V0RW51bWVyYWJsZShib29sKTsKKyAgICAgICAgdm9pZCBzZXRDb25maWd1cmFibGUoYm9v
bCk7CisgICAgICAgIHZvaWQgc2V0VmFsdWUoSlNWYWx1ZSB2YWx1ZSkgeyBtX3ZhbHVlID0gdmFs
dWU7IH0KKyAgICAgICAgdm9pZCBzZXRTZXR0ZXIoSlNWYWx1ZSk7CisgICAgICAgIHZvaWQgc2V0
R2V0dGVyKEpTVmFsdWUpOworICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAh
KG1fdmFsdWUgfHwgbV9nZXR0ZXIgfHwgbV9zZXR0ZXIgfHwgbV9zZWVuQXR0cmlidXRlcyk7IH0K
KyAgICAgICAgYm9vbCB3cml0YWJsZVByZXNlbnQoKSBjb25zdCB7IHJldHVybiBtX3NlZW5BdHRy
aWJ1dGVzICYgV3JpdGFibGVQcmVzZW50OyB9CisgICAgICAgIGJvb2wgZW51bWVyYWJsZVByZXNl
bnQoKSBjb25zdCB7IHJldHVybiBtX3NlZW5BdHRyaWJ1dGVzICYgRW51bWVyYWJsZVByZXNlbnQ7
IH0KKyAgICAgICAgYm9vbCBjb25maWd1cmFibGVQcmVzZW50KCkgY29uc3QgeyByZXR1cm4gbV9z
ZWVuQXR0cmlidXRlcyAmIENvbmZpZ3VyYWJsZVByZXNlbnQ7IH0KKyAgICAgICAgYm9vbCBzZXR0
ZXJQcmVzZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKyAgICAgICAgYm9vbCBnZXR0
ZXJQcmVzZW50KCkgY29uc3QgeyByZXR1cm4gbV9nZXR0ZXI7IH0KKyAgICAgICAgYm9vbCBlcXVh
bFRvKGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgb3RoZXIpIGNvbnN0OworICAgICAgICBib29s
IGF0dHJpYnV0ZXNFcXVhbChjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIG90aGVyKSBjb25zdDsK
KyAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlc1dpdGhPdmVycmlkZShjb25zdCBQcm9wZXJ0eURl
c2NyaXB0b3ImIG90aGVyKSBjb25zdDsKICAgICBwcml2YXRlOgorICAgICAgICBzdGF0aWMgdW5z
aWduZWQgZGVmYXVsdEF0dHJpYnV0ZXM7CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQ
cm9wZXJ0eURlc2NyaXB0b3ImKXsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGVudW0geyBXcml0
YWJsZVByZXNlbnQgPSAxLCBFbnVtZXJhYmxlUHJlc2VudCA9IDIsIENvbmZpZ3VyYWJsZVByZXNl
bnQgPSA0fTsKICAgICAgICAgLy8gTWF5IGJlIGEgZ2V0dGVyL3NldHRlcgogICAgICAgICBKU1Zh
bHVlIG1fdmFsdWU7CiAgICAgICAgIEpTVmFsdWUgbV9nZXR0ZXI7CiAgICAgICAgIEpTVmFsdWUg
bV9zZXR0ZXI7CiAgICAgICAgIHVuc2lnbmVkIG1fYXR0cmlidXRlczsKKyAgICAgICAgdW5zaWdu
ZWQgbV9zZWVuQXR0cmlidXRlczsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGNhY2E3Yi4uMWY3MGY0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDA5LTA5LTE4ICBPbGl2ZXIgSHVudCAgPG9saXZl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IEVTNSBPYmplY3QuZGVmaW5lUHJvcGVydHkgZnVuY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTAzCisKKyAgICAg
ICAgQWRkIHRlc3RjYXNlcyBmb3IgT2JqZWN0LmRlZmluZVByb3BlcnR5LgorCisgICAgICAgICog
ZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2pzL3Jlc291cmNlcy9PYmplY3QtZGVmaW5lUHJvcGVydHkuanM6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJv
cGVydHktYXR0YWNrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWw6IEFk
ZGVkLgorCiAyMDA5LTA5LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQxNWM2OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0LWRlZmluZVByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDYzIEBACitUZXN0IHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSlNP
Ti5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5l
UHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6MX0pLCAnZm9vJykpIGlzIEpTT04uc3RyaW5naWZ5
KHt2YWx1ZTogMSwgd3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmlndXJh
YmxlOiBmYWxzZX0pCitQQVNTIEpTT04uc3RyaW5naWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge30pLCAnZm9vJykpIGlz
IEpTT04uc3RyaW5naWZ5KHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBjb25m
aWd1cmFibGU6IGZhbHNlfSkKK1BBU1MgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OnVuZGVm
aW5lZH0pLCAnZm9vJykpIGlzIEpTT04uc3RyaW5naWZ5KHt3cml0YWJsZTogdHJ1ZSwgZW51bWVy
YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KQorUEFTUyBKU09OLnN0cmluZ2lmeShP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwg
J2ZvbycsIHt2YWx1ZToxLCB3cml0YWJsZTogZmFsc2V9KSwgJ2ZvbycpKSBpcyBKU09OLnN0cmlu
Z2lmeSh7dmFsdWU6IDEsIHdyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZp
Z3VyYWJsZTogZmFsc2V9KQorUEFTUyBKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZToxLCB3
cml0YWJsZTogdHJ1ZX0pLCAnZm9vJykpIGlzIEpTT04uc3RyaW5naWZ5KHt2YWx1ZTogMSwgd3Jp
dGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlfSkKK1BB
U1MgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6MSwgZW51bWVyYWJsZTogZmFsc2V9KSwg
J2ZvbycpKSBpcyBKU09OLnN0cmluZ2lmeSh7dmFsdWU6IDEsIHdyaXRhYmxlOiBmYWxzZSwgZW51
bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KQorUEFTUyBKU09OLnN0cmluZ2lm
eShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7
fSwgJ2ZvbycsIHt2YWx1ZToxLCBlbnVtZXJhYmxlOiB0cnVlfSksICdmb28nKSkgaXMgSlNPTi5z
dHJpbmdpZnkoe3ZhbHVlOiAxLCB3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNv
bmZpZ3VyYWJsZTogZmFsc2V9KQorUEFTUyBKU09OLnN0cmluZ2lmeShPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTox
LCBjb25maWd1cmFibGU6IGZhbHNlfSksICdmb28nKSkgaXMgSlNPTi5zdHJpbmdpZnkoe3ZhbHVl
OiAxLCB3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZh
bHNlfSkKK1BBU1MgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6MSwgY29uZmlndXJhYmxl
OiB0cnVlfSksICdmb28nKSkgaXMgSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOiAxLCB3cml0YWJsZTog
ZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWV9KQorUEFTUyBKU09O
LnN0cmluZ2lmeShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShbMSwyLDNdLCAnZm9vJywge3ZhbHVlOjEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAn
Zm9vJykpIGlzIEpTT04uc3RyaW5naWZ5KHt2YWx1ZTogMSwgd3JpdGFibGU6IGZhbHNlLCBlbnVt
ZXJhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiB0cnVlfSkKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVydHkoWzEsMiwzXSwgJzEnLCB7dmFs
dWU6J2ZvbycsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAnMScpLnZhbHVlIGlzICdmb28nCitQQVNT
IGE9WzEsMiwzXSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICcxJywge3ZhbHVlOidmb28nLCBj
b25maWd1cmFibGU6IHRydWV9KSwgYVsxXSBpcyAnZm9vJworUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShbMSwyLDNdLCAnMScsIHtnZXQ6
Z2V0dGVyLCBjb25maWd1cmFibGU6IHRydWV9KSwgJzEnKS5nZXQgaXMgZ2V0dGVyCitQQVNTIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShbMSwyLDNdLCAnMScsIHtnZXQ6Z2V0dGVyLCBjb25maWd1cmFi
bGU6IHRydWV9KVsxXSB0aHJldyBleGNlcHRpb24gY2FsbGVkIGdldHRlci4KK1BBU1MgT2JqZWN0
LmRlZmluZVByb3BlcnR5KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvcGVydGllcyBj
YW4gb25seSBiZSBkZWZpbmVkIG9uIE9iamVjdHMuLgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVy
dHkobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvcGVydGllcyBjYW4gb25seSBi
ZSBkZWZpbmVkIG9uIE9iamVjdHMuLgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoJ2Zvbycp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb3BlcnRpZXMgY2FuIG9ubHkgYmUgZGVmaW5l
ZCBvbiBPYmplY3RzLi4KK1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBQcm9wZXJ0eSBkZXNjcmlwdGlvbiBtdXN0IGJlIGFuIG9iamVjdC4u
CitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFByb3BlcnR5IGRlc2NyaXB0aW9uIG11c3QgYmUgYW4gb2JqZWN0Li4KK1BBU1Mg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHZhbHVlOnRy
dWV9KS5mb28gaXMgdHJ1ZQorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlVW5jb25m
aWd1cmFibGVQcm9wZXJ0eSh7fSwgJ2ZvbycpLCAnZm9vJywge2NvbmZpZ3VyYWJsZTogdHJ1ZX0p
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY29uZmlndXJhYmxlIGF0
dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShjcmVhdGVVbmNvbmZpZ3VyYWJsZVByb3BlcnR5KHt9LCAnZm9vJyksICdmb28nLCB7
d3JpdGFibGU6IHRydWV9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRv
IGNoYW5nZSB3cml0YWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuLgor
UEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlVW5jb25maWd1cmFibGVQcm9wZXJ0eSh7
fSwgJ2ZvbycpLCAnZm9vJywge2VudW1lcmFibGU6IHRydWV9KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNoYW5nZSBlbnVtZXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVV
bmNvbmZpZ3VyYWJsZVByb3BlcnR5KHt9LCAnZm9vJywgZmFsc2UsIHRydWUpLCAnZm9vJywge2Vu
dW1lcmFibGU6IGZhbHNlfSksICdmb28nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVt
cHRpbmcgdG8gY2hhbmdlIGVudW1lcmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHBy
b3BlcnR5Li4KK1BBU1MgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlVW5jb25maWd1cmFibGVQcm9wZXJ0eSh7
fSwgJ2ZvbycsIHRydWUpLCAnZm9vJywge3dyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJykpIGlzIEpT
T04uc3RyaW5naWZ5KHt2YWx1ZTogMSwgd3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNl
LCBjb25maWd1cmFibGU6IGZhbHNlfSkKK1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAn
Zm9vJywge3ZhbHVlOjEsIGdldDogZnVuY3Rpb24oKXt9fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogSW52YWxpZCBwcm9wZXJ0eS4gICd2YWx1ZScgcHJlc2VudCBvbiBwcm9wZXJ0eSB3aXRo
IGdldHRlciBvciBzZXR0ZXIuLgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28n
LCB7dmFsdWU6MSwgc2V0OiBmdW5jdGlvbigpe319KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBJbnZhbGlkIHByb3BlcnR5LiAgJ3ZhbHVlJyBwcmVzZW50IG9uIHByb3BlcnR5IHdpdGggZ2V0
dGVyIG9yIHNldHRlci4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt3
cml0YWJsZTp0cnVlLCBnZXQ6IGZ1bmN0aW9uKCl7fX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEludmFsaWQgcHJvcGVydHkuICAnd3JpdGFibGUnIHByZXNlbnQgb24gcHJvcGVydHkgd2l0
aCBnZXR0ZXIgb3Igc2V0dGVyLi4KK1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9v
Jywge3dyaXRhYmxlOnRydWUsIHNldDogZnVuY3Rpb24oKXt9fSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogSW52YWxpZCBwcm9wZXJ0eS4gICd3cml0YWJsZScgcHJlc2VudCBvbiBwcm9wZXJ0
eSB3aXRoIGdldHRlciBvciBzZXR0ZXIuLgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30s
ICdmb28nLCB7Z2V0OiBudWxsfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogR2V0dGVyIG11
c3QgYmUgYSBmdW5jdGlvbi4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHtzZXQ6IG51bGx9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTZXR0ZXIgbXVzdCBiZSBh
IGZ1bmN0aW9uLi4KK1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3NldDog
c2V0dGVyfSkuZm9vPSd0ZXN0JyB0aHJldyBleGNlcHRpb24gY2FsbGVkIHNldHRlci4KK1BBU1Mg
T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtz
ZXQ6IHNldHRlcn0pLCAnZm9vJywge3NldDogc2V0dGVyMX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBzZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFi
bGUgcHJvcGVydHkuLgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHt9LCAnZm9vJywge3NldDogc2V0dGVyfSksICdmb28nLCB7Z2V0OiBnZXR0ZXIxfSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIGdldHRl
ciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXJ9KSwgJ2Zv
bycsIHt2YWx1ZTogMX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8g
Y2hhbmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5Li4K
K1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtzZXQ6IHNldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0
ZXIxfSkuZm9vPSd0ZXN0JyB0aHJldyBleGNlcHRpb24gY2FsbGVkIHNldHRlcjEuCitQQVNTIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0
OiBzZXR0ZXIsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAnZm9vJywge2dldDogZ2V0dGVyMX0pLmZv
byB0aHJldyBleGNlcHRpb24gY2FsbGVkIGdldHRlcjEuCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXIsIGNvbmZp
Z3VyYWJsZTogdHJ1ZX0pLCAnZm9vJywge3ZhbHVlOiB0cnVlfSkuZm9vIGlzIHRydWUKK1BBU1Mg
J2ZvbycgaW4gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwg
J2ZvbycsIHtzZXQ6IHNldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7d3JpdGFi
bGU6IHRydWV9KSBpcyB0cnVlCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVm
aW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXIsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0p
LCAnZm9vJywge3dyaXRhYmxlOiB0cnVlfSkuZm9vIGlzIHVuZGVmaW5lZC4KK1BBU1MgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZ2V0dGVyfSkuZm9vIHRocmV3IGV4Y2Vw
dGlvbiBjYWxsZWQgZ2V0dGVyLgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZ2V0dGVyfSksICdmb28nLCB7Z2V0OiBnZXR0
ZXIxfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhl
IGdldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBnZXR0ZXJ9
KSwgJ2ZvbycsIHtzZXQ6IHNldHRlcjF9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRl
bXB0aW5nIHRvIGNoYW5nZSB0aGUgc2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5
Li4KK1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwg
J2ZvbycsIHtnZXQ6IGdldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBn
ZXR0ZXIxfSkuZm9vIHRocmV3IGV4Y2VwdGlvbiBjYWxsZWQgZ2V0dGVyMS4KK1BBU1MgT2JqZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IGdl
dHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0ZXIxfSkuZm9vPSd0
ZXN0JyB0aHJldyBleGNlcHRpb24gY2FsbGVkIHNldHRlcjEuCitQQVNTIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBnZXR0ZXIsIGNv
bmZpZ3VyYWJsZTogdHJ1ZX0pLCAnZm9vJywge3ZhbHVlOiB0cnVlfSkuZm9vIGlzIHRydWUKK1BB
U1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHtnZXQ6IGdldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7d3JpdGFibGU6IHRy
dWV9KS5mb28gaXMgdW5kZWZpbmVkLgorUEFTUyAnZm9vJyBpbiBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZ2V0dGVyLCBjb25maWd1
cmFibGU6IHRydWV9KSwgJ2ZvbycsIHt3cml0YWJsZTogdHJ1ZX0pIGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1
ZTogMX0pLCAnZm9vJywge3NldDogc2V0dGVyMX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29uZmlndXJh
YmxlIHByb3BlcnR5Li4KK1BBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28n
LCB7c2V0OiBzZXR0ZXIxfSkuZm9vPSd0ZXN0JyB0aHJldyBleGNlcHRpb24gY2FsbGVkIHNldHRl
cjEuCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30s
ICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHtnZXQ6IGdldHRlcjF9KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNoYW5nZSBhY2Nlc3MgbWVjaGFuaXNtIGZvciBh
biB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShP
YmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHtzZXQ6
IHNldHRlcjF9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNoYW5n
ZSBhY2Nlc3MgbWVjaGFuaXNtIGZvciBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNT
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7
dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAnZm9vJywge2dldDogZ2V0dGVyMX0pLmZv
byB0aHJldyBleGNlcHRpb24gY2FsbGVkIGdldHRlcjEuCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3Vy
YWJsZTogdHJ1ZX0pLCAnZm9vJywge3NldDogc2V0dGVyMX0pLmZvbz0ndGVzdCcgdGhyZXcgZXhj
ZXB0aW9uIGNhbGxlZCBzZXR0ZXIxLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0
LWRlZmluZVByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQ
cm9wZXJ0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMjQ4NzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9w
ZXJ0eS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvT2JqZWN0LWRlZmluZVByb3BlcnR5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL09iamVjdC1kZWZpbmVQ
cm9wZXJ0eS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL09iamVjdC1kZWZpbmVQ
cm9wZXJ0eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODdhZjMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvT2JqZWN0LWRl
ZmluZVByb3BlcnR5LmpzCkBAIC0wLDAgKzEsODMgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRvIGVu
c3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkiKTsKKworc2hv
dWxkQmUoIkpTT04uc3RyaW5naWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3ZhbHVlOjF9KSwgJ2ZvbycpKSIsCisgICAg
ICAgICAiSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOiAxLCB3cml0YWJsZTogZmFsc2UsIGVudW1lcmFi
bGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlfSkiKTsKK3Nob3VsZEJlKCJKU09OLnN0cmlu
Z2lmeShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh7fSwgJ2ZvbycsIHt9KSwgJ2ZvbycpKSIsCisgICAgICAgICAiSlNPTi5zdHJpbmdpZnkoe3dy
aXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KSIp
Oworc2hvdWxkQmUoIkpTT04uc3RyaW5naWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWR9KSwgJ2Zv
bycpKSIsCisgICAgICAgICAiSlNPTi5zdHJpbmdpZnkoe3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJh
YmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pIik7CitzaG91bGRCZSgiSlNPTi5zdHJp
bmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7dmFsdWU6MSwgd3JpdGFibGU6IGZhbHNlfSksICdmb28nKSkiLAorICAg
ICAgICAgIkpTT04uc3RyaW5naWZ5KHt2YWx1ZTogMSwgd3JpdGFibGU6IGZhbHNlLCBlbnVtZXJh
YmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pIik7CitzaG91bGRCZSgiSlNPTi5zdHJp
bmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7dmFsdWU6MSwgd3JpdGFibGU6IHRydWV9KSwgJ2ZvbycpKSIsCisgICAg
ICAgICAiSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJs
ZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KSIpOworc2hvdWxkQmUoIkpTT04uc3RyaW5n
aWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LmRlZmluZVByb3BlcnR5
KHt9LCAnZm9vJywge3ZhbHVlOjEsIGVudW1lcmFibGU6IGZhbHNlfSksICdmb28nKSkiLAorICAg
ICAgICAgIkpTT04uc3RyaW5naWZ5KHt2YWx1ZTogMSwgd3JpdGFibGU6IGZhbHNlLCBlbnVtZXJh
YmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pIik7CitzaG91bGRCZSgiSlNPTi5zdHJp
bmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7dmFsdWU6MSwgZW51bWVyYWJsZTogdHJ1ZX0pLCAnZm9vJykpIiwKKyAg
ICAgICAgICJKU09OLnN0cmluZ2lmeSh7dmFsdWU6IDEsIHdyaXRhYmxlOiBmYWxzZSwgZW51bWVy
YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pIik7CitzaG91bGRCZSgiSlNPTi5zdHJp
bmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7dmFsdWU6MSwgY29uZmlndXJhYmxlOiBmYWxzZX0pLCAnZm9vJykpIiwK
KyAgICAgICAgICJKU09OLnN0cmluZ2lmeSh7dmFsdWU6IDEsIHdyaXRhYmxlOiBmYWxzZSwgZW51
bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KSIpOworc2hvdWxkQmUoIkpTT04u
c3RyaW5naWZ5KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHt9LCAnZm9vJywge3ZhbHVlOjEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAnZm9vJykp
IiwKKyAgICAgICAgICJKU09OLnN0cmluZ2lmeSh7dmFsdWU6IDEsIHdyaXRhYmxlOiBmYWxzZSwg
ZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pIik7CitzaG91bGRCZSgiSlNP
Ti5zdHJpbmdpZnkoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5l
UHJvcGVydHkoWzEsMiwzXSwgJ2ZvbycsIHt2YWx1ZToxLCBjb25maWd1cmFibGU6IHRydWV9KSwg
J2ZvbycpKSIsCisgICAgICAgICAiSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOiAxLCB3cml0YWJsZTog
ZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWV9KSIpOworc2hvdWxk
QmUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LmRlZmluZVByb3BlcnR5
KFsxLDIsM10sICcxJywge3ZhbHVlOidmb28nLCBjb25maWd1cmFibGU6IHRydWV9KSwgJzEnKS52
YWx1ZSIsICInZm9vJyIpOworc2hvdWxkQmUoImE9WzEsMiwzXSwgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KGEsICcxJywge3ZhbHVlOidmb28nLCBjb25maWd1cmFibGU6IHRydWV9KSwgYVsxXSIsICIn
Zm9vJyIpOworc2hvdWxkQmUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0
LmRlZmluZVByb3BlcnR5KFsxLDIsM10sICcxJywge2dldDpnZXR0ZXIsIGNvbmZpZ3VyYWJsZTog
dHJ1ZX0pLCAnMScpLmdldCIsICJnZXR0ZXIiKTsKK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5l
UHJvcGVydHkoWzEsMiwzXSwgJzEnLCB7Z2V0OmdldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSlb
MV0iLCAiJ2NhbGxlZCBnZXR0ZXInIik7CisKK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5lUHJv
cGVydHkoKSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShudWxsKSIpOwor
c2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eSgnZm9vJykiKTsKK3Nob3VsZFRocm93
KCJPYmplY3QuZGVmaW5lUHJvcGVydHkoe30pIik7CitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHt9LCAnZm9vJykiKTsKK3Nob3VsZEJlVHJ1ZSgiT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHZhbHVlOnRydWV9KS5mb28iKTsKKworZnVu
Y3Rpb24gY3JlYXRlVW5jb25maWd1cmFibGVQcm9wZXJ0eShvLCBwcm9wLCB3cml0YWJsZSwgZW51
bWVyYWJsZSkgeworICAgIHdyaXRhYmxlID0gd3JpdGFibGUgfHwgZmFsc2U7CisgICAgZW51bWVy
YWJsZSA9IGVudW1lcmFibGUgfHwgZmFsc2U7CisgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvLCBwcm9wLCB7dmFsdWU6MSwgY29uZmlndXJhYmxlOmZhbHNlLCB3cml0YWJsZTogd3Jp
dGFibGUsIGVudW1lcmFibGU6IGVudW1lcmFibGV9KTsKK30KK3Nob3VsZFRocm93KCJPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoY3JlYXRlVW5jb25maWd1cmFibGVQcm9wZXJ0eSh7fSwgJ2ZvbycpLCAn
Zm9vJywge2NvbmZpZ3VyYWJsZTogdHJ1ZX0pIik7CitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KGNyZWF0ZVVuY29uZmlndXJhYmxlUHJvcGVydHkoe30sICdmb28nKSwgJ2Zvbycs
IHt3cml0YWJsZTogdHJ1ZX0pIik7CitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5
KGNyZWF0ZVVuY29uZmlndXJhYmxlUHJvcGVydHkoe30sICdmb28nKSwgJ2ZvbycsIHtlbnVtZXJh
YmxlOiB0cnVlfSkiKTsKK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRl
VW5jb25maWd1cmFibGVQcm9wZXJ0eSh7fSwgJ2ZvbycsIGZhbHNlLCB0cnVlKSwgJ2ZvbycsIHtl
bnVtZXJhYmxlOiBmYWxzZX0pLCAnZm9vJyIpOworCitzaG91bGRCZSgiSlNPTi5zdHJpbmdpZnko
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QuZGVmaW5lUHJvcGVydHkoY3Jl
YXRlVW5jb25maWd1cmFibGVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHRydWUpLCAnZm9vJywge3dyaXRh
YmxlOiBmYWxzZX0pLCAnZm9vJykpIiwKKyAgICAgICAgICJKU09OLnN0cmluZ2lmeSh7dmFsdWU6
IDEsIHdyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxz
ZX0pIik7CisKK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7
dmFsdWU6MSwgZ2V0OiBmdW5jdGlvbigpe319KSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZToxLCBzZXQ6IGZ1bmN0aW9uKCl7fX0pIik7Citz
aG91bGRUaHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3dyaXRhYmxlOnRy
dWUsIGdldDogZnVuY3Rpb24oKXt9fSkiKTsKK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5lUHJv
cGVydHkoe30sICdmb28nLCB7d3JpdGFibGU6dHJ1ZSwgc2V0OiBmdW5jdGlvbigpe319KSIpOwor
c2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IG51bGx9
KSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6
IG51bGx9KSIpOworZnVuY3Rpb24gZ2V0dGVyKCl7IHRocm93ICJjYWxsZWQgZ2V0dGVyIjsgfQor
ZnVuY3Rpb24gZ2V0dGVyMSgpeyB0aHJvdyAiY2FsbGVkIGdldHRlcjEiOyB9CitmdW5jdGlvbiBz
ZXR0ZXIoKXsgdGhyb3cgImNhbGxlZCBzZXR0ZXIiOyB9CitmdW5jdGlvbiBzZXR0ZXIxKCl7IHRo
cm93ICJjYWxsZWQgc2V0dGVyMSI7IH0KK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXJ9KS5mb289J3Rlc3QnIiwgIidjYWxsZWQgc2V0dGVy
JyIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJv
cGVydHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXJ9KSwgJ2ZvbycsIHtzZXQ6IHNldHRlcjF9KSIp
Oworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXJ9KSwgJ2ZvbycsIHtnZXQ6IGdldHRlcjF9KSIpOwor
c2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHko
e30sICdmb28nLCB7c2V0OiBzZXR0ZXJ9KSwgJ2ZvbycsIHt2YWx1ZTogMX0pIik7CitzaG91bGRU
aHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtzZXQ6IHNldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0
ZXIxfSkuZm9vPSd0ZXN0JyIsICInY2FsbGVkIHNldHRlcjEnIik7CitzaG91bGRUaHJvdygiT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6
IHNldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBnZXR0ZXIxfSkuZm9v
IiwgIidjYWxsZWQgZ2V0dGVyMSciKTsKK3Nob3VsZEJlVHJ1ZSgiT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6IHNldHRlciwgY29uZmln
dXJhYmxlOiB0cnVlfSksICdmb28nLCB7dmFsdWU6IHRydWV9KS5mb28iKTsKK3Nob3VsZEJlVHJ1
ZSgiJ2ZvbycgaW4gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7
fSwgJ2ZvbycsIHtzZXQ6IHNldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7d3Jp
dGFibGU6IHRydWV9KSIpOworc2hvdWxkQmVVbmRlZmluZWQoIk9iamVjdC5kZWZpbmVQcm9wZXJ0
eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OiBzZXR0ZXIsIGNvbmZpZ3Vy
YWJsZTogdHJ1ZX0pLCAnZm9vJywge3dyaXRhYmxlOiB0cnVlfSkuZm9vIik7CitzaG91bGRUaHJv
dygiT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZ2V0dGVyfSkuZm9vIiwg
IidjYWxsZWQgZ2V0dGVyJyIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShP
YmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBnZXR0ZXJ9KSwgJ2ZvbycsIHtn
ZXQ6IGdldHRlcjF9KSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBnZXR0ZXJ9KSwgJ2ZvbycsIHtzZXQ6
IHNldHRlcjF9KSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBnZXR0ZXIsIGNvbmZpZ3VyYWJsZTogdHJ1
ZX0pLCAnZm9vJywge2dldDogZ2V0dGVyMX0pLmZvbyIsICInY2FsbGVkIGdldHRlcjEnIik7Citz
aG91bGRUaHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7
fSwgJ2ZvbycsIHtnZXQ6IGdldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0
OiBzZXR0ZXIxfSkuZm9vPSd0ZXN0JyIsICInY2FsbGVkIHNldHRlcjEnIik7CitzaG91bGRCZVRy
dWUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28n
LCB7Z2V0OiBnZXR0ZXIsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAnZm9vJywge3ZhbHVlOiB0cnVl
fSkuZm9vIik7CitzaG91bGRCZVVuZGVmaW5lZCgiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IGdldHRlciwgY29uZmlndXJhYmxlOiB0
cnVlfSksICdmb28nLCB7d3JpdGFibGU6IHRydWV9KS5mb28iKTsKK3Nob3VsZEJlVHJ1ZSgiJ2Zv
bycgaW4gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtnZXQ6IGdldHRlciwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7d3JpdGFibGU6
IHRydWV9KSIpOworCitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMX0pLCAnZm9vJywge3NldDogc2V0dGVy
MX0pIik7CitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28n
LCB7c2V0OiBzZXR0ZXIxfSkuZm9vPSd0ZXN0JyIsICInY2FsbGVkIHNldHRlcjEnIik7CitzaG91
bGRUaHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwg
J2ZvbycsIHt2YWx1ZTogMX0pLCAnZm9vJywge2dldDogZ2V0dGVyMX0pIik7CitzaG91bGRUaHJv
dygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHt2YWx1ZTogMX0pLCAnZm9vJywge3NldDogc2V0dGVyMX0pIik7CitzaG91bGRUaHJvdygiT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1
ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBnZXR0ZXIxfSkuZm9vIiwg
IidjYWxsZWQgZ2V0dGVyMSciKTsKK3Nob3VsZFRocm93KCJPYmplY3QuZGVmaW5lUHJvcGVydHko
T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1cmFibGU6
IHRydWV9KSwgJ2ZvbycsIHtzZXQ6IHNldHRlcjF9KS5mb289J3Rlc3QnIiwgIidjYWxsZWQgc2V0
dGVyMSciKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJv
cGVydHktYXR0YWNrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHktYXR0YWNrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTUyMWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQ
cm9wZXJ0eS1hdHRhY2tlci5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzxodG1sPgorPHByZSBpZD0i
bG9nIj48L3ByZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJUZXh0ICs9IG1zZyArICJcbiI7Cit9CitmdW5j
dGlvbiBzdHJpbmdpZnkobykgeworICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvLCBmdW5jdGlv
bihoLG8peyBpZiAodHlwZW9mIG8gPT09ICJmdW5jdGlvbiIpIHJldHVybiBvLnRvU3RyaW5nKCk7
IHJldHVybiBvO30pCit9Cit2YXIgZGVzY3JpcHRvcnMgPSBbCisgICAge2dldDpmdW5jdGlvbiBn
ZXR0ZXIoKXt9fSwKKyAgICB7c2V0OmZ1bmN0aW9uIHNldHRlcigpe319LAorICAgIHt3cml0YWJs
ZTp0cnVlfSwKKyAgICB7ZW51bWVyYWJsZTp0cnVlfSwKKyAgICB7Y29uZmlndXJhYmxlOnRydWV9
LAorICAgIHt2YWx1ZToiaGF4MHJlZCJ9CitdOworZm9yICh2YXIgaiA9IDA7IGogPCBkZXNjcmlw
dG9ycy5sZW5ndGg7IGorKykKKyAgICB0cnkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyZW50
LCAiT2JqZWN0IiwgZGVzY3JpcHRvcnNbal0pOyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0KK2ZvciAo
dmFyIGogPSAwOyBqIDwgZGVzY3JpcHRvcnMubGVuZ3RoOyBqKyspCisgICAgdHJ5IHsgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHBhcmVudCwgImxvY2F0aW9uIiwgZGVzY3JpcHRvcnNbal0pOyB9IGNh
dGNoKGUpIHsgbG9nKGUpIH0KK2ZvciAodmFyIGogPSAwOyBqIDwgZGVzY3JpcHRvcnMubGVuZ3Ro
OyBqKyspCisgICAgdHJ5IHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudCwgIm5ld1Byb3Bl
cnR5IiwgZGVzY3JpcHRvcnNbal0pOyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0KK2ZvciAodmFyIGog
PSAwOyBqIDwgZGVzY3JpcHRvcnMubGVuZ3RoOyBqKyspCisgICAgdHJ5IHsgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHBhcmVudC5sb2NhdGlvbiwgImhhc2giLCBkZXNjcmlwdG9yc1tqXSk7IH0gY2F0
Y2goZSkgeyBsb2coZSkgfQorZm9yICh2YXIgaiA9IDA7IGogPCBkZXNjcmlwdG9ycy5sZW5ndGg7
IGorKykKKyAgICB0cnkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyZW50LmxvY2F0aW9uLCAi
c2VhcmNoIiwgZGVzY3JpcHRvcnNbal0pOyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0KK2ZvciAodmFy
IGogPSAwOyBqIDwgZGVzY3JpcHRvcnMubGVuZ3RoOyBqKyspCisgICAgdHJ5IHsgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHBhcmVudC5sb2NhdGlvbiwgImhvc3RuYW1lIiwgZGVzY3JpcHRvcnNbal0p
OyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0KK2ZvciAodmFyIGogPSAwOyBqIDwgZGVzY3JpcHRvcnMu
bGVuZ3RoOyBqKyspCisgICAgdHJ5IHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudC5sb2Nh
dGlvbiwgInBhdGhuYW1lIiwgZGVzY3JpcHRvcnNbal0pOyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0K
K2ZvciAodmFyIGogPSAwOyBqIDwgZGVzY3JpcHRvcnMubGVuZ3RoOyBqKyspCisgICAgdHJ5IHsg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudC5sb2NhdGlvbiwgInByb3RvY29sIiwgZGVzY3Jp
cHRvcnNbal0pOyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0KK2ZvciAodmFyIGogPSAwOyBqIDwgZGVz
Y3JpcHRvcnMubGVuZ3RoOyBqKyspCisgICAgdHJ5IHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBh
cmVudC5sb2NhdGlvbiwgIm5ld1Byb3BlcnR5IiwgZGVzY3JpcHRvcnNbal0pOyB9IGNhdGNoKGUp
IHsgbG9nKGUpIH0KK2ZvciAodmFyIGogPSAwOyBqIDwgZGVzY3JpcHRvcnMubGVuZ3RoOyBqKysp
CisgICAgdHJ5IHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudC5sb2NhdGlvbiwgInJlbG9h
ZCIsIGRlc2NyaXB0b3JzW2pdKTsgfSBjYXRjaChlKSB7IGxvZyhlKSB9Citmb3IgKHZhciBqID0g
MDsgaiA8IGRlc2NyaXB0b3JzLmxlbmd0aDsgaisrKQorICAgIHRyeSB7IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShwYXJlbnQuT2JqZWN0LnByb3RvdHlwZSwgIm5ld1Byb3BlcnR5IiwgZGVzY3JpcHRv
cnNbal0pOyB9IGNhdGNoKGUpIHsgbG9nKGUpIH0KKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWRlZmluZVBy
b3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
LURFTklFRC1kZWZpbmVQcm9wZXJ0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uY2E5OGY0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1NiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2Ny
aXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9zZWN1cml0eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRo
IFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQt
ZGVmaW5lUHJvcGVydHktYXR0YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3Jp
cHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3NlY3VyaXR5L3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGgg
VVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1k
ZWZpbmVQcm9wZXJ0eS1hdHRhY2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlw
dCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
c2VjdXJpdHkveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBV
UkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRl
ZmluZVByb3BlcnR5LWF0dGFja2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0
IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVS
TCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVm
aW5lUHJvcGVydHktYXR0YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQg
YXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZp
bmVQcm9wZXJ0eS1hdHRhY2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBh
dHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmlu
ZVByb3BlcnR5LWF0dGFja2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0
dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5l
UHJvcGVydHktYXR0YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0
ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQ
cm9wZXJ0eS1hdHRhY2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRl
bXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJp
dHkveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmluZVBy
b3BlcnR5LWF0dGFja2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVt
cHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0
eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRw
Oi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJv
cGVydHktYXR0YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1w
dCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQcm9w
ZXJ0eS1hdHRhY2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0
IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
eHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmluZVByb3Bl
cnR5LWF0dGFja2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQg
dG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94
c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8v
bG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVy
dHktYXR0YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hz
cy1ERU5JRUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0
eS1hdHRhY2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRv
IGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNz
LURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmluZVByb3BlcnR5
LWF0dGFja2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
KworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8g
YWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3Mt
REVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHkt
YXR0YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzcy1E
RU5JRUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS1h
dHRhY2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFj
Y2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzLURF
TklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmluZVByb3BlcnR5LWF0
dGFja2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKwor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNj
ZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3MtREVO
SUVELWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHktYXR0
YWNrZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nl
c3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzcy1ERU5J
RUQtZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS1hdHRh
Y2tlci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2Vz
cyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzLURFTklF
RC1kZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmluZVByb3BlcnR5LWF0dGFj
a2VyLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNz
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3MtREVOSUVE
LWRlZmluZVByb3BlcnR5Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0
OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ERU5JRUQtZGVmaW5lUHJvcGVydHktYXR0YWNr
ZXIuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3Mg
ZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzcy1ERU5JRUQt
ZGVmaW5lUHJvcGVydHkuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS1hdHRhY2tl
ci5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBm
cmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzLURFTklFRC1k
ZWZpbmVQcm9wZXJ0eS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtREVOSUVELWRlZmluZVByb3BlcnR5LWF0dGFja2Vy
Lmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworCitQQVNT
OiBjcm9zcy1zaXRlIGFzc2lnbm1lbnQgb2YgT2JqZWN0IGNvbnN0cnVjdG9yIG5vdCBhbGxvd2Vk
CitQQVNTOiBjcm9zcy1zaXRlIGFzc2lnbm1lbnQgb2YgbmV3IHByb3BlcnR5IG5vdCBhbGxvd2Vk
CitQQVNTOiBjcm9zcy1zaXRlIGFzc2lnbm1lbnQgb2YgbG9jYXRpb24uaGFzaCBub3QgYWxsb3dl
ZAorUEFTUzogY3Jvc3Mtc2l0ZSBhc3NpZ25tZW50IG9mIGxvY2F0aW9uLnNlYXJjaCBub3QgYWxs
b3dlZAorUEFTUzogY3Jvc3Mtc2l0ZSBhc3NpZ25tZW50IG9mIGxvY2F0aW9uLm5ld1Byb3BlcnR5
IG5vdCBhbGxvd2VkCitQQVNTOiBjcm9zcy1zaXRlIGFzc2lnbm1lbnQgb2YgbG9jYXRpb24ucmVs
b2FkIG5vdCBhbGxvd2VkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRmZmZjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS5odG1s
CkBAIC0wLDAgKzEsNDggQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KK3ZhciBvID0gT2JqZWN0OworZnVu
Y3Rpb24gZmluaXNoKCkKK3sKKyAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih0aGlzLCAiT2JqZWN0IikudmFsdWUgPT09IG8pCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICJQQVNTOiBjcm9zcy1zaXRlIGFzc2lnbm1l
bnQgb2YgT2JqZWN0IGNvbnN0cnVjdG9yIG5vdCBhbGxvd2VkPGJyLz4iOworICAgIGVsc2UKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIkZB
SUw6IGNyb3NzLXNpdGUgYXNzaWdubWVudCBvZiBPYmplY3QgY29uc3RydWN0b3Igd2FzIGFsbG93
ZWQhPGJyLz4iOworCisgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhp
cywgIm5ld1Byb3BlcnR5IikgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIlBBU1M6IGNyb3NzLXNpdGUgYXNzaWdu
bWVudCBvZiBuZXcgcHJvcGVydHkgbm90IGFsbG93ZWQ8YnIvPiI7CisgICAgZWxzZQorICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiRkFJTDog
Y3Jvc3Mtc2l0ZSBhc3NpZ25tZW50IG9mIG5ldyBwcm9wZXJ0eSB3YXMgYWxsb3dlZCE8YnIvPiI7
CisKKyAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsb2NhdGlvbiwgImhh
c2giKS52YWx1ZS5sZW5ndGggPT0gMCkKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIlBBU1M6IGNyb3NzLXNpdGUgYXNzaWdubWVudCBvZiBs
b2NhdGlvbi5oYXNoIG5vdCBhbGxvd2VkPGJyLz4iOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIkZBSUw6IGNyb3NzLXNp
dGUgYXNzaWdubWVudCBvZiBsb2NhdGlvbi5oYXNoIHdhcyBhbGxvd2VkITxici8+IjsKKworICAg
IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGxvY2F0aW9uLCAiaGFzaCIpLnZh
bHVlLmxlbmd0aCA9PSAwKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCArPSAiUEFTUzogY3Jvc3Mtc2l0ZSBhc3NpZ25tZW50IG9mIGxvY2F0aW9u
LnNlYXJjaCBub3QgYWxsb3dlZDxici8+IjsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICJGQUlMOiBjcm9zcy1zaXRlIGFz
c2lnbm1lbnQgb2YgbG9jYXRpb24uc2VhcmNoIHdhcyBhbGxvd2VkITxici8+IjsKKworICAgIGlm
ICghKCJuZXdQcm9wZXJ0eSIgaW4gbG9jYXRpb24pKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiUEFTUzogY3Jvc3Mtc2l0ZSBhc3NpZ25t
ZW50IG9mIGxvY2F0aW9uLm5ld1Byb3BlcnR5IG5vdCBhbGxvd2VkPGJyLz4iOworICAgIGVsc2UK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
IkZBSUw6IGNyb3NzLXNpdGUgYXNzaWdubWVudCBvZiBsb2NhdGlvbi5uZXdQcm9wZXJ0eSB3YXMg
YWxsb3dlZCE8YnIvPiI7CisKKyAgICBpZiAobG9jYXRpb24ucmVsb2FkICE9ICJoYXgwcmVkIikK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
IlBBU1M6IGNyb3NzLXNpdGUgYXNzaWdubWVudCBvZiBsb2NhdGlvbi5yZWxvYWQgbm90IGFsbG93
ZWQ8YnIvPiI7CisgICAgZWxzZQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSAiRkFJTDogY3Jvc3Mtc2l0ZSBhc3NpZ25tZW50IG9mIGxvY2F0
aW9uLnJlbG9hZCB3YXMgYWxsb3dlZCE8YnIvPiI7CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
Cit9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJmaW5pc2goKSI+CisgICAgPGlmcmFtZSB3
aWR0aD03MCUgaGVpZ2h0PTMwMCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9y
ZXNvdXJjZXMveHNzLURFTklFRC1kZWZpbmVQcm9wZXJ0eS1hdHRhY2tlci5odG1sIj48L2lmcmFt
ZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjlkYTliLi5l
OGM4MjE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDA5LTA5LTE4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IEVTNSBPYmplY3QuZGVmaW5lUHJvcGVydHkgZnVuY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTAzCisKKyAgICAgICAg
T3ZlcnJpZGUgZGVmaW5lT3duUHJvcGVydHkgb24gSlNET01XaW5kb3dTaGVsbCB0byBmb3J3YXJk
IGFwcHJvcHJpYXRlbHksCisgICAgICAgIGFuZCB0aGVuIG92ZXJyaWRlIGRlZmluZU93blByb3Bl
cnR5IG9uIEpTRE9NV2luZG93IHRvIGRpc2FsbG93IGNyb3NzIG9yaWdpbgorICAgICAgICBkZWZp
bmVPd25Qcm9wZXJ0eSB1c2FnZS4gIFdlIGFsc28gb3ZlcnJpZGUgZGVmaW5lT3duUHJvcGVydHkg
b24gUXVhcmFudGluZWRPYmplY3RXcmFwcGVyCisgICAgICAgIHRvIGVuc3VyZSBjb3JyZWN0IHdy
YXBwaW5nIHNlbWFudGljcyBvZiBxdWFyYW50aW5lZCBvYmplY3RzLgorCisgICAgICAgIE9uZSBt
YWpvciBjYXZlYXQgaW4gdGhpcyBwYXRjaCBpcyB0aGF0IGl0IGN1cnJlbnRseSBkaXNhbGxvd3Mg
dGhlIHVzZQorICAgICAgICBvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkgb24gRE9NT2JqZWN0cyBv
dGhlciB0aGFuIHRoZSB3aW5kb3cgZHVlIHRvCisgICAgICAgIHRoZSBzaWduaWZpY2FudCB3b3Jr
IGludm9sdmVkIGluIGNvcnJlY3RseSBwcm9wYWdhdGluZyBhdHRyaWJ1dGVzIGFuZAorICAgICAg
ICBlbnN1cmluZyBjb3JyZWN0IHNlbWFudGljcyBvbiBkb20gb2JqZWN0cy4KKworICAgICAgICBU
ZXN0czogZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydHkuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWRlZmluZVByb3BlcnR5Lmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01PYmplY3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVmaW5lR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWZpbmVTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3c6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6
OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6
OmRlZmluZUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpkZWZp
bmVTZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTTG9jYXRpb246OmRlZmluZUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0xvY2F0
aW9uUHJvdG90eXBlOjpkZWZpbmVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUXVh
cmFudGluZWRPYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUXVhcmFudGlu
ZWRPYmplY3RXcmFwcGVyOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmRlZmluZU93blByb3BlcnR5KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorCiAyMDA5LTA5LTE4ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZy
ZXkgR2FyZW4gYW5kIEJyYWR5IEVpZHNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cAppbmRleCBkZjM4NGVhLi42NTUwYWRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwCkBAIC02NDgsNCArNjQ4LDEwIEBAIEpTQzo6SlNPYmplY3QqIHRvSlNTZXF1ZW5jZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkJiBsZW5ndGgpCiAgICAgcmV0dXJu
IG9iamVjdDsKIH0KIAorYm9vbCBET01PYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wpCit7
CisgICAgdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJkZWZpbmVQcm9wZXJ0eSBpcyBub3Qg
c3VwcG9ydGVkIG9uIERPTSBPYmplY3RzIik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBjM2Fi
MjY2Li5jNDY1MTNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTU1LDYgKzU1
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAorICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wpOworCiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICB2aXJ0dWFsIH5ET01PYmplY3QoKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAyN2U5NWZlLi43ZmUxZGM1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNDg4LDcg
KzQ4OCw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldFByb3BlcnR5QXR0cmlidXRlcyhFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlCiAgICAgcmV0dXJuIEJhc2U6OmdldFBy
b3BlcnR5QXR0cmlidXRlcyhleGVjLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOwogfQogCi12
b2lkIEpTRE9NV2luZG93OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbikKK3ZvaWQgSlNE
T01XaW5kb3c6OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKQogewogICAgIC8vIE9ubHkgYWxsb3cgZGVmaW5pbmcgZ2V0dGVycyBieSBmcmFtZXMgaW4g
dGhlIHNhbWUgb3JpZ2luLgogICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKQEAgLTQ5
OCwxNSArNDk4LDIzIEBAIHZvaWQgSlNET01XaW5kb3c6OmRlZmluZUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKICAgICBpZiAocHJvcGVydHlO
YW1lID09ICJsb2NhdGlvbiIpCiAgICAgICAgIHJldHVybjsKIAotICAgIEJhc2U6OmRlZmluZUdl
dHRlcihleGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9uKTsKKyAgICBCYXNlOjpkZWZp
bmVHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdGlvbiwgYXR0cmlidXRlcyk7
CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OmRlZmluZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmN0aW9uKQor
dm9pZCBKU0RPTVdpbmRvdzo6ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpCiB7CiAgICAgLy8gT25seSBhbGxvdyBkZWZpbmluZyBzZXR0ZXJzIGJ5IGZy
YW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMp
KQogICAgICAgICByZXR1cm47Ci0gICAgQmFzZTo6ZGVmaW5lU2V0dGVyKGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2V0dGVyRnVuY3Rpb24pOworICAgIEJhc2U6OmRlZmluZVNldHRlcihleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKK30KKworYm9vbCBKU0RPTVdp
bmRvdzo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvciwgYm9vbCBzaG91bGRUaHJvdykKK3sKKyAgICAvLyBPbmx5IGFsbG93IGRlZmluaW5nIHBy
b3BlcnRpZXMgaW4gdGhpcyB3YXkgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbiwgYXMgaXQg
YWxsb3dzIHNldHRlcnMgdG8gYmUgaW50cm9kdWNlZC4KKyAgICBpZiAoIWFsbG93c0FjY2Vzc0Zy
b20oZXhlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gQmFzZTo6ZGVmaW5l
T3duUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CiB9CiAKIEpTVmFsdWUgSlNET01XaW5kb3c6Omxvb2t1cEdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuY3BwCmluZGV4IGY5NjlkYzEuLjNjM2ZmNGMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtMTAzLDYgKzEwMywxMSBAQCB2b2lkIEpTRE9N
V2luZG93U2hlbGw6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcAogICAgIG1fd2luZG93LT5wdXRXaXRoQXR0cmlidXRlcyhleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKIH0KIAorYm9vbCBKU0RPTVdpbmRvd1NoZWxs
OjpkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
LCBib29sIHNob3VsZFRocm93KQoreworICAgIHJldHVybiBtX3dpbmRvdy0+ZGVmaW5lT3duUHJv
cGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7Cit9CisK
IGJvb2wgSlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIG1fd2luZG93LT5k
ZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwpAQCAtMTIzLDE0ICsxMjgsMTQgQEAg
Ym9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWYKICAgICByZXR1cm4gbV93aW5kb3ctPmdldFByb3BlcnR5
QXR0cmlidXRlcyhleGVjLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOwogfQogCi12b2lkIEpT
RE9NV2luZG93U2hlbGw6OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uKQordm9pZCBKU0RP
TVdpbmRvd1NoZWxsOjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0
cmlidXRlcykKIHsKLSAgICBtX3dpbmRvdy0+ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZ2V0dGVyRnVuY3Rpb24pOworICAgIG1fd2luZG93LT5kZWZpbmVHZXR0ZXIoZXhlYywgcHJv
cGVydHlOYW1lLCBnZXR0ZXJGdW5jdGlvbiwgYXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgSlNET01X
aW5kb3dTaGVsbDo6ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24pCit2b2lkIEpTRE9NV2lu
ZG93U2hlbGw6OmRlZmluZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKQogewotICAgIG1fd2luZG93LT5kZWZpbmVTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBz
ZXR0ZXJGdW5jdGlvbik7CisgICAgbV93aW5kb3ctPmRlZmluZVNldHRlcihleGVjLCBwcm9wZXJ0
eU5hbWUsIHNldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdp
bmRvd1NoZWxsOjpsb29rdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4
IGE3YzJjNTYuLjIzYWYzNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5o
CkBAIC03NCw4ICs3NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIGdldFByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFy
cmF5Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKSBjb25zdDsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVTZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCogc2V0dGVyRnVuY3Rp
b24pOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRl
ckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRl
ZmluZVNldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRl
cyk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1
ZSBsb29rdXBHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGxvb2t1cFNldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAg
ICAgICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiB1bndyYXBwZWRPYmplY3QoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IGVmNTgzNDkuLjljZDk0MmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMTgyLDExICsxODIs
MTEgQEAgdm9pZCBKU0xvY2F0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwogfQogCi12b2lkIEpTTG9jYXRpb246OmRlZmluZUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNP
YmplY3QqIGdldHRlckZ1bmN0aW9uKQordm9pZCBKU0xvY2F0aW9uOjpkZWZpbmVHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBn
ZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBpZiAocHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZyB8fCBwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnZhbHVlT2YpCiAgICAgICAgIHJldHVybjsKLSAgICBCYXNl
OjpkZWZpbmVHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdGlvbik7CisgICAg
QmFzZTo6ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24sIGF0
dHJpYnV0ZXMpOwogfQogCiBzdGF0aWMgdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChFeGVjU3RhdGUq
IGV4ZWMsIEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBi
b29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCkBAIC0zNjIsMTEgKzM2MiwxMSBAQCBib29sIEpTTG9j
YXRpb25Qcm90b3R5cGU6OnB1dERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydAogICAgIHJldHVybiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS50b1N0cmluZyB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygp
LnZhbHVlT2YpOwogfQogCi12b2lkIEpTTG9jYXRpb25Qcm90b3R5cGU6OmRlZmluZUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
IGdldHRlckZ1bmN0aW9uKQordm9pZCBKU0xvY2F0aW9uUHJvdG90eXBlOjpkZWZpbmVHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBpZiAocHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZyB8fCBwcm9wZXJ0eU5hbWUg
PT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnZhbHVlT2YpCiAgICAgICAgIHJldHVybjsKLSAgICBC
YXNlOjpkZWZpbmVHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdGlvbik7Cisg
ICAgQmFzZTo6ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24s
IGF0dHJpYnV0ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuY3BwCmluZGV4IGEwNzFh
NGUuLjMwYWNmOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5l
ZE9iamVjdFdyYXBwZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5l
ZE9iamVjdFdyYXBwZXIuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgYm9vbCBKU1F1YXJhbnRpbmVk
T2JqZWN0V3JhcHBlcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgdW53cmFwcGVkRGVzY3JpcHRvcjsKICAgICBi
b29sIHJlc3VsdCA9IG1fdW53cmFwcGVkT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
dW53cmFwcGVkRXhlY1N0YXRlKCksIGlkZW50aWZpZXIsIHVud3JhcHBlZERlc2NyaXB0b3IpOwog
Ci0gICAgaWYgKHVud3JhcHBlZERlc2NyaXB0b3IuaGFzQWNjZXNzb3JzKCkpIHsKKyAgICBpZiAo
dW53cmFwcGVkRGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKSB7CiAgICAgICAgIGRl
c2NyaXB0b3Iuc2V0QWNjZXNzb3JEZXNjcmlwdG9yKHdyYXBPdXRnb2luZ1ZhbHVlKHVud3JhcHBl
ZEV4ZWNTdGF0ZSgpLCB1bndyYXBwZWREZXNjcmlwdG9yLmdldHRlcigpKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcE91dGdvaW5nVmFsdWUodW53cmFwcGVk
RXhlY1N0YXRlKCksIHVud3JhcHBlZERlc2NyaXB0b3Iuc2V0dGVyKCkpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bndyYXBwZWREZXNjcmlwdG9yLmF0dHJpYnV0
ZXMoKSk7CkBAIC0xNzgsNiArMTc4LDMzIEBAIHZvaWQgSlNRdWFyYW50aW5lZE9iamVjdFdyYXBw
ZXI6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIEpTVmFsCiAgICAg
dHJhbnNmZXJFeGNlcHRpb25Ub0V4ZWNTdGF0ZShleGVjKTsKIH0KIAorYm9vbCBKU1F1YXJhbnRp
bmVkT2JqZWN0V3JhcHBlcjo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgYm9vbCBzaG91bGRUaHJvdykKK3sKKyAgICBpZiAoIWFsbG93c1NldFByb3BlcnR5KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFByb3BlcnR5RGVzY3JpcHRvciB3cmFwcGVkRGVz
Y3JpcHRvcjsKKyAgICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKKyAgICAg
ICAgd3JhcHBlZERlc2NyaXB0b3Iuc2V0VmFsdWUocHJlcGFyZUluY29taW5nVmFsdWUoZXhlYywg
ZGVzY3JpcHRvci52YWx1ZSgpKSk7CisgICAgICAgIGlmICh3cmFwcGVkRGVzY3JpcHRvci53cml0
YWJsZVByZXNlbnQoKSkKKyAgICAgICAgICAgIHdyYXBwZWREZXNjcmlwdG9yLnNldFdyaXRhYmxl
KGRlc2NyaXB0b3Iud3JpdGFibGUoKSk7CisgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yLmlzQWNj
ZXNzb3JEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAgaWYgKGRlc2NyaXB0b3IuZ2V0dGVyKCkpCisg
ICAgICAgICAgICB3cmFwcGVkRGVzY3JpcHRvci5zZXRHZXR0ZXIocHJlcGFyZUluY29taW5nVmFs
dWUoZXhlYywgZGVzY3JpcHRvci5nZXR0ZXIoKSkpOworICAgICAgICBpZiAoZGVzY3JpcHRvci5z
ZXR0ZXIoKSkKKyAgICAgICAgICAgIHdyYXBwZWREZXNjcmlwdG9yLnNldFNldHRlcihwcmVwYXJl
SW5jb21pbmdWYWx1ZShleGVjLCBkZXNjcmlwdG9yLnNldHRlcigpKSk7CisgICAgfQorICAgIGlm
ICh3cmFwcGVkRGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpKQorICAgICAgICB3cmFwcGVk
RGVzY3JpcHRvci5zZXRFbnVtZXJhYmxlKGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKTsKKyAgICBp
ZiAod3JhcHBlZERlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpKQorICAgICAgICB3cmFw
cGVkRGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUoZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSk7
CisgICAgCisgICAgYm9vbCByZXN1bHQgPSBtX3Vud3JhcHBlZE9iamVjdC0+ZGVmaW5lT3duUHJv
cGVydHkodW53cmFwcGVkRXhlY1N0YXRlKCksIHByb3BlcnR5TmFtZSwgd3JhcHBlZERlc2NyaXB0
b3IsIHNob3VsZFRocm93KTsKKyAgICAKKyAgICB0cmFuc2ZlckV4Y2VwdGlvblRvRXhlY1N0YXRl
KGV4ZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wgSlNRdWFyYW50aW5lZE9iamVj
dFdyYXBwZXI6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllcikKIHsKICAgICBpZiAoIWFsbG93c0RlbGV0ZVByb3BlcnR5KCkpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmgKaW5kZXgg
MzdmMjUxOC4uMmJjNjYzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJh
bnRpbmVkT2JqZWN0V3JhcHBlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50
aW5lZE9iamVjdFdyYXBwZXIuaApAQCAtNjIsNiArNjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBKU0M6OkpTVmFs
dWUpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVs
ZXRlUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
ODhmNjdmMC4uNTZhZTZlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC02MjcsNiArNjI3LDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAg
IyBDdXN0b20gZ2V0UHJvcGVydHlOYW1lcyBmdW5jdGlvbiBleGlzdHMgb24gRE9NV2luZG93CiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1l
cyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTtcbiIpIGlmICRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciOworCisgICAgIyBDdXN0b20gZGVmaW5lUHJvcGVydHkg
ZnVuY3Rpb24gZXhpc3RzIG9uIERPTVdpbmRvdworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgdmlydHVhbCBib29sIGRlZmluZU93blByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiwg
Ym9vbCBzaG91bGRUaHJvdyk7XG4iKSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsK
KwogICAgICMgQ3VzdG9tIGdldE93blByb3BlcnR5TmFtZXMgZnVuY3Rpb24KICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpO1xuIikgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldFByb3BlcnR5TmFtZXMifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pOyAgICAKIApA
QCAtNjM0LDEwICs2MzgsMTAgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJvcGVydHlBdHRyaWJ1dGVzKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpIGNv
bnN0O1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJv
cGVydHlBdHRyaWJ1dGVzIn07CiAKICAgICAjIEN1c3RvbSBkZWZpbmVHZXR0ZXIgZnVuY3Rpb24K
LSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24pO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tRGVmaW5lR2V0dGVyIn07CisgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbURlZmluZUdldHRlciJ9OwogCiAgICAgIyBDdXN0b20gZGVmaW5lU2V0
dGVyIGZ1bmN0aW9uCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQg
ZGVmaW5lU2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIHNldHRlckZ1bmN0aW9uKTtcbiIpIGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbURlZmluZVNldHRlciJ9OworICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0
KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21EZWZpbmVTZXR0ZXIifTsKIAogICAgICMgQ3Vz
dG9tIGxvb2t1cEdldHRlciBmdW5jdGlvbgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
dmlydHVhbCBKU0M6OkpTVmFsdWUgbG9va3VwR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTG9va3VwR2V0dGVyIn07CkBAIC04MDAsNyArODA0LDcgQEAg
c3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgfQogCiAgICAgIyBDdXN0b20gZGVmaW5lR2V0dGVyIGZ1
bmN0aW9uCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5l
R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRlciJ9OworICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2Jq
ZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsK
IAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKFBh
c3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0KHN0cnVj
dHVyZSkgeyB9XG4iKTs=
</data>
<flag name="review"
          id="20926"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>