<?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>39495</bug_id>
          
          <creation_ts>2010-05-21 09:54:07 -0700</creation_ts>
          <short_desc>All callable objects should have a global object reference</short_desc>
          <delta_ts>2010-05-21 11:40:47 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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></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>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228961</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-21 09:54:07 -0700</bug_when>
    <thetext>All callable objects should have a global object reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228992</commentid>
    <comment_count>1</comment_count>
      <attachid>56726</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-21 10:31:53 -0700</bug_when>
    <thetext>Created attachment 56726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229000</commentid>
    <comment_count>2</comment_count>
      <attachid>56726</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-05-21 10:54:49 -0700</bug_when>
    <thetext>Comment on attachment 56726
Patch

Please mention your performance testing results in the ChangeLog.

+        All objects that may ever return a value other CallTypeNone
+        or ConstructTypeNone now get a global object in their constructor

Typo: Should be &quot;other than&quot;.

Please fix EWS failures.

Since we can&apos;t use C++ subclassing, I wonder if there&apos;s some other centralized choke-point we can use for ensuring our anonymous slot contract. The ASSERT is good, but it would be better to catch an error even earlier, like at object construction time. For example, maybe we need a Structure::createCallable.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229013</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-21 11:20:44 -0700</bug_when>
    <thetext>Committed r59941</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229020</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-21 11:35:13 -0700</bug_when>
    <thetext>Broke the windows build.  My appologies that the win builder is not caught up yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229022</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-21 11:40:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59941 might have broken Qt Linux ARMv5 Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56726</attachid>
            <date>2010-05-21 10:31:53 -0700</date>
            <delta_ts>2010-05-21 10:54:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39495-20100521103151.patch</filename>
            <type>text/plain</type>
            <size>192031</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWM1
ZjZkNzNlNmUxYWI2NjUwM2ZkMTc3ZjY4MTc0MDBhMzk5MzM1Yi4uMjk0ODkzMjgyMWU0MGM4ZjAz
MjMwODA3ZDIwYzlmMDcyOTc5NzJhZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHAKQEAgLTM3LDggKzM3LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNv
bnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmluZm8gPSB7ICJDYWxsYmFja0Nv
bnN0cnVjdG9yIiwgMCwgMCwgMCB9OwogCi1KU0NhbGxiYWNrQ29uc3RydWN0b3I6OkpTQ2FsbGJh
Y2tDb25zdHJ1Y3RvcihOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlND
bGFzc1JlZiBqc0NsYXNzLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2sgY2FsbGJh
Y2spCi0gICAgOiBKU09iamVjdChzdHJ1Y3R1cmUpCitKU0NhbGxiYWNrQ29uc3RydWN0b3I6OkpT
Q2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxs
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBqc0NsYXNzLCBKU09i
amVjdENhbGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2sgY2FsbGJhY2spCisgICAgOiBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2NsYXNzKGpz
Q2xhc3MpCiAgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogewpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGU1Mjk5NDcyNGUyZmQwZDRiOWMyOTBjNTg5
MGJjZWNjYWViMmU5MjMuLmE2ZDY0Y2M3NzE4MzRjMzVkYWQ5OTg3YTg5YWMxMjBlOGFjYjAzMmMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAor
KysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTI3LDEz
ICsyNywxMyBAQAogI2RlZmluZSBKU0NhbGxiYWNrQ29uc3RydWN0b3JfaAogCiAjaW5jbHVkZSAi
SlNPYmplY3RSZWYuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8
cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWNsYXNzIEpTQ2FsbGJhY2tDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU09iamVjdCB7CitjbGFzcyBK
U0NhbGxiYWNrQ29uc3RydWN0b3IgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICBKU0NhbGxiYWNrQ29uc3RydWN0b3IoTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsK
KyAgICBKU0NhbGxiYWNrQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+LCBKU0NsYXNzUmVmLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2Fs
bGJhY2spOwogICAgIHZpcnR1YWwgfkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcigpOwogICAgIEpTQ2xh
c3NSZWYgY2xhc3NSZWYoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzOyB9CiAgICAgSlNPYmplY3RD
YWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxs
YmFjazsgfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCA2
M2M4YWRkODU0Y2Q1OWU1MjIxM2I4NzA2YjJiYWI2NzczZjQ3NmZjLi40OTUzMDEwZDMwMWRlYTc1
M2M5NTExYzM3NjBhZWU0YjI3NmUxZjdhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFj
a0Z1bmN0aW9uLmNwcApAQCAtNDEsOCArNDEsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTQ2FsbGJhY2tGdW5jdGlvbik7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rp
b246OmluZm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OmluZm8s
IDAsIDAgfTsKIAotSlNDYWxsYmFja0Z1bmN0aW9uOjpKU0NhbGxiYWNrRnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tGdW5jdGlvblN0cnVj
dHVyZSgpLCBuYW1lKQorSlNDYWxsYmFja0Z1bmN0aW9uOjpKU0NhbGxiYWNrRnVuY3Rpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdENhbGxB
c0Z1bmN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LT5jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlKCksIG5hbWUpCiAgICAgLCBtX2Nh
bGxiYWNrKGNhbGxiYWNrKQogewogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tGdW5jdGlvbi5oIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5oCmluZGV4IDEwZGFlNmI3M2YwNDM3YzhhNjhmNzQzNTczZGVhZjYwMWU2ZmNhOGMuLmIwZGM0
MjU4MzAzZmYyYzUyNzcyMTIzZGViNmZjYWI4YTkyMjkxMTMgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IGNsYXNzIEpTQ2FsbGJhY2tGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1
YmxpYzoKLSAgICBKU0NhbGxiYWNrRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNPYmplY3RDYWxsQXNG
dW5jdGlvbkNhbGxiYWNrLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKKyAgICBKU0NhbGxiYWNr
RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdENhbGxBc0Z1bmN0
aW9uQ2FsbGJhY2ssIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgc3RhdGljIGNvbnN0
IENsYXNzSW5mbyBpbmZvOwogICAgIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCmluZGV4IGIzNmMxOTQxNDQ3MzEyMWJjZTk3M2VhYjc1N2RkMzZhMWRhOTk1YjAuLmFiZDJh
ZGMwNGE5MTVmMmM0YzA5NTlhMWYxN2UwMjc4MWEyYWVjYzcgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdC5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0
Pik7CitBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0Pik7CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+KTsKIAogLy8gRGVmaW5lIHRoZSB0d28gdHlwZXMgb2YgSlND
YWxsYmFja09iamVjdHMgd2Ugc3VwcG9ydC4KLXRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBK
U0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0Pjo6aW5mbyA9IHsgIkNhbGxiYWNrT2JqZWN0IiwgMCwg
MCwgMCB9OwordGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6aW5mbyA9IHsgIkNhbGxiYWNrT2JqZWN0IiwgMCwgMCwg
MCB9OwogdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9i
YWxPYmplY3Q+OjppbmZvID0geyAiQ2FsbGJhY2tHbG9iYWxPYmplY3QiLCAwLCAwLCAwIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5k
ZXggMWNmN2EwMmIyNTZlMTE1MjFkOGE2OTllYzA0ZjQ2MmQ0N2JkODFjYi4uMDY2MGI0NTgyZTg1
Y2ZiMWUxY2VlNTAzZmFjMDkxNDVjMmE0MGVkOCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFj
a09iamVjdC5oCkBAIC0xMTQsOCArMTE0LDggQEAgc3RydWN0IEpTQ2FsbGJhY2tPYmplY3REYXRh
IHsKIHRlbXBsYXRlIDxjbGFzcyBCYXNlPgogY2xhc3MgSlNDYWxsYmFja09iamVjdCA6IHB1Ymxp
YyBCYXNlIHsKIHB1YmxpYzoKLSAgICBKU0NhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSosIE5vbk51
bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIEpTQ2xhc3NSZWYsIHZvaWQqIGRhdGEpOwotICAgIEpT
Q2FsbGJhY2tPYmplY3QoSlNDbGFzc1JlZik7CisgICAgSlNDYWxsYmFja09iamVjdChFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIEpTQ2xh
c3NSZWYsIHZvaWQqIGRhdGEpOworICAgIEpTQ2FsbGJhY2tPYmplY3QoSlNDbGFzc1JlZiwgTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CiAgICAgdmlydHVhbCB+SlNDYWxsYmFja09iamVj
dCgpOwogCiAgICAgdm9pZCBzZXRQcml2YXRlKHZvaWQqIGRhdGEpOwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggNmM4M2ViNGU3ZTgzMzg1
ZTE1NmQwNmJjZDU4ZjM5N2M4NWE0OWE5MC4uNjU3M2VkOTczNDM3MmM0MmI2NDk1ZTk3MmRmYjVm
ZjA0MDVhNTk2MiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3RGdW5jdGlvbnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCkBAIC00OCw4ICs0OCw4IEBAIGlubGluZSBKU0NhbGxiYWNrT2JqZWN0PEJhc2U+
KiBKU0NhbGxiYWNrT2JqZWN0PEJhc2U+Ojphc0NhbGxiYWNrT2JqZWN0KEpTVmFsdWUKIH0KIAog
dGVtcGxhdGUgPGNsYXNzIEJhc2U+Ci1KU0NhbGxiYWNrT2JqZWN0PEJhc2U+OjpKU0NhbGxiYWNr
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1
Y3R1cmUsIEpTQ2xhc3NSZWYganNDbGFzcywgdm9pZCogZGF0YSkKLSAgICA6IEJhc2Uoc3RydWN0
dXJlKQorSlNDYWxsYmFja09iamVjdDxCYXNlPjo6SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xhc3MsIHZvaWQqIGRhdGEpCisgICAg
OiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9jYWxsYmFja09iamVjdERh
dGEobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRhdGEsIGpzQ2xhc3MpKQogewogICAgIGluaXQo
ZXhlYyk7CkBAIC01OCw4ICs1OCw4IEBAIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OkpTQ2FsbGJh
Y2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1CiAvLyBHbG9i
YWwgb2JqZWN0IGNvbnN0cnVjdG9yLgogLy8gRklYTUU6IE1vdmUgdGhpcyBpbnRvIGEgc2VwYXJh
dGUgSlNHbG9iYWxDYWxsYmFja09iamVjdCBjbGFzcyBkZXJpdmVkIGZyb20gdGhpcyBvbmUuCiB0
ZW1wbGF0ZSA8Y2xhc3MgQmFzZT4KLUpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OkpTQ2FsbGJhY2tP
YmplY3QoSlNDbGFzc1JlZiBqc0NsYXNzKQotICAgIDogQmFzZSgpCitKU0NhbGxiYWNrT2JqZWN0
PEJhc2U+OjpKU0NhbGxiYWNrT2JqZWN0KEpTQ2xhc3NSZWYganNDbGFzcywgTm9uTnVsbFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHN0cnVjdHVyZSkKICAgICAs
IG1fY2FsbGJhY2tPYmplY3REYXRhKG5ldyBKU0NhbGxiYWNrT2JqZWN0RGF0YSgwLCBqc0NsYXNz
KSkKIHsKICAgICBBU1NFUlQoQmFzZTo6aXNHbG9iYWxPYmplY3QoKSk7CkBAIC01NjAsNyArNTYw
LDggQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PEJhc2U+OjpzdGF0aWNGdW5jdGlvbkdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2wKICAgICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NT
dGF0aWNGdW5jdGlvbnNUYWJsZSogc3RhdGljRnVuY3Rpb25zID0ganNDbGFzcy0+c3RhdGljRnVu
Y3Rpb25zKGV4ZWMpKSB7CiAgICAgICAgICAgICBpZiAoU3RhdGljRnVuY3Rpb25FbnRyeSogZW50
cnkgPSBzdGF0aWNGdW5jdGlvbnMtPmdldChwcm9wZXJ0eU5hbWUudXN0cmluZygpLnJlcCgpKSkg
ewogICAgICAgICAgICAgICAgIGlmIChKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgY2Fs
bEFzRnVuY3Rpb24gPSBlbnRyeS0+Y2FsbEFzRnVuY3Rpb24pIHsKLSAgICAgICAgICAgICAgICAg
ICAgSlNPYmplY3QqIG8gPSBuZXcgKGV4ZWMpIEpTQ2FsbGJhY2tGdW5jdGlvbihleGVjLCBjYWxs
QXNGdW5jdGlvbiwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIEpTT2JqZWN0KiBvID0gbmV3IChleGVjKSBKU0NhbGxiYWNrRnVuY3Rpb24o
ZXhlYywgYXNHbG9iYWxPYmplY3QodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkpLCBjYWxs
QXNGdW5jdGlvbiwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+
cHV0RGlyZWN0KHByb3BlcnR5TmFtZSwgbywgZW50cnktPmF0dHJpYnV0ZXMpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbzsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFz
c1JlZi5jcHAKaW5kZXggM2U2NWI3NTNmZWZmM2E4YTMxYmE1ZTY1NTUzZGIwMjg3NzNmOGU3NC4u
ZDgzOTNmMTI5ZWJlMDQwZjRjZTg3YzM5MDEwZjE2YmI1NmE0YmNkOCAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NsYXNzUmVmLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIEpTT2JqZWN0KiBPcGFxdWVKU0NsYXNz
Ojpwcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgaWYgKCFqc0NsYXNzRGF0YS5jYWNo
ZWRQcm90b3R5cGUpIHsKICAgICAgICAgLy8gUmVjdXJzaXZlLCBidXQgc2hvdWxkIGJlIGdvb2Qg
ZW5vdWdoIGZvciBvdXIgcHVycG9zZXMKLSAgICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90
eXBlID0gbmV3IChleGVjKSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0PihleGVjLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNhbGxiYWNrT2JqZWN0U3RydWN0dXJlKCksIHByb3RvdHlw
ZUNsYXNzLCAmanNDbGFzc0RhdGEpOyAvLyBzZXQganNDbGFzc0RhdGEgYXMgdGhlIG9iamVjdCdz
IHByaXZhdGUgZGF0YSwgc28gaXQgY2FuIGNsZWFyIG91ciByZWZlcmVuY2Ugb24gZGVzdHJ1Y3Rp
b24KKyAgICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlID0gbmV3IChleGVjKSBKU0Nh
bGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD4oZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNhbGxiYWNrT2Jq
ZWN0U3RydWN0dXJlKCksIHByb3RvdHlwZUNsYXNzLCAmanNDbGFzc0RhdGEpOyAvLyBzZXQganND
bGFzc0RhdGEgYXMgdGhlIG9iamVjdCdzIHByaXZhdGUgZGF0YSwgc28gaXQgY2FuIGNsZWFyIG91
ciByZWZlcmVuY2Ugb24gZGVzdHJ1Y3Rpb24KICAgICAgICAgaWYgKHBhcmVudENsYXNzKSB7CiAg
ICAgICAgICAgICBpZiAoSlNPYmplY3QqIHByb3RvdHlwZSA9IHBhcmVudENsYXNzLT5wcm90b3R5
cGUoZXhlYykpCiAgICAgICAgICAgICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlLT5z
ZXRQcm90b3R5cGUocHJvdG90eXBlKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NvbnRleHRSZWYuY3BwIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKaW5k
ZXggYjk3Y2VkYTY3OTlhNjZlODIzMzc5YTQxNDQyMTIzOWEzYzRiYWMyYy4uOTI2YmFkYzhkMTdh
YmZhODk4MzY1OTdiNGRjNTk0N2IwNzJjYjA4OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJl
Zi5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgSlNHbG9iYWxDb250ZXh0UmVmIEpTR2xvYmFsQ29udGV4
dENyZWF0ZUluR3JvdXAoSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXAsIEpTQ2xhc3MKICAgICAgICAg
cmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+
KGdsb2JhbE9iamVjdENsYXNzKTsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
bmV3IChnbG9iYWxEYXRhLmdldCgpKSBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pihn
bG9iYWxPYmplY3RDbGFzcywgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmNyZWF0
ZVN0cnVjdHVyZShqc051bGwoKSkpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpOwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gZ2xvYmFsT2JqZWN0Q2xh
c3MtPnByb3RvdHlwZShleGVjKTsKICAgICBpZiAoIXByb3RvdHlwZSkKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwCmluZGV4IDhmZGJkYWI5MDU5MzAwYThhZjdmYTIyZjQyOGRkM2JjMGViOTg3
ZDUuLjczYmJhNjcwY2M4MTA0ODMyYTVjYzQxYzIwODFmZTc1OTJlM2QyYzQgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
QVBJL0pTT2JqZWN0UmVmLmNwcApAQCAtODEsNyArODEsNyBAQCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2UoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKQog
ICAgIGlmICghanNDbGFzcykKICAgICAgICAgcmV0dXJuIHRvUmVmKG5ldyAoZXhlYykgSlNPYmpl
Y3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5lbXB0eU9iamVjdFN0cnVjdHVyZSgpKSk7
IC8vIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50CiAKLSAgICBKU0NhbGxiYWNrT2JqZWN0PEpTT2Jq
ZWN0Piogb2JqZWN0ID0gbmV3IChleGVjKSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0PihleGVj
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNhbGxiYWNrT2JqZWN0U3RydWN0dXJlKCks
IGpzQ2xhc3MsIGRhdGEpOworICAgIEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0Piogb2JqZWN0ID0gbmV3IChleGVjKSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdD4oZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNhbGxiYWNrT2JqZWN0U3RydWN0dXJlKCksIGpzQ2xhc3Ms
IGRhdGEpOwogICAgIGlmIChKU09iamVjdCogcHJvdG90eXBlID0ganNDbGFzcy0+cHJvdG90eXBl
KGV4ZWMpKQogICAgICAgICBvYmplY3QtPnNldFByb3RvdHlwZShwcm90b3R5cGUpOwogCkBAIC05
NSw3ICs5NSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNr
KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsCiAKICAgICBJZGVudGlmaWVyIG5h
bWVJRCA9IG5hbWUgPyBuYW1lLT5pZGVudGlmaWVyKCZleGVjLT5nbG9iYWxEYXRhKCkpIDogSWRl
bnRpZmllcihleGVjLCAiYW5vbnltb3VzIik7CiAgICAgCi0gICAgcmV0dXJuIHRvUmVmKG5ldyAo
ZXhlYykgSlNDYWxsYmFja0Z1bmN0aW9uKGV4ZWMsIGNhbGxBc0Z1bmN0aW9uLCBuYW1lSUQpKTsK
KyAgICByZXR1cm4gdG9SZWYobmV3IChleGVjKSBKU0NhbGxiYWNrRnVuY3Rpb24oZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBjYWxsQXNGdW5jdGlvbiwgbmFtZUlEKSk7CiB9CiAK
IEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUNvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpT
Q2xhc3NSZWYganNDbGFzcywgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxB
c0NvbnN0cnVjdG9yKQpAQCAtMTA3LDcgKzEwNyw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFr
ZUNvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYganNDbGFzcywgSlNPYmpl
CiAgICAgaWYgKCFqc1Byb3RvdHlwZSkKICAgICAgICAganNQcm90b3R5cGUgPSBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpOwogCi0gICAgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yKiBjb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgSlNDYWxsYmFja0NvbnN0cnVjdG9y
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVy
ZSgpLCBqc0NsYXNzLCBjYWxsQXNDb25zdHJ1Y3Rvcik7CisgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKiBjb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgSlNDYWxsYmFja0NvbnN0cnVjdG9yKGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxs
YmFja0NvbnN0cnVjdG9yU3RydWN0dXJlKCksIGpzQ2xhc3MsIGNhbGxBc0NvbnN0cnVjdG9yKTsK
ICAgICBjb25zdHJ1Y3Rvci0+cHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIGpzUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAg
cmV0dXJuIHRvUmVmKGNvbnN0cnVjdG9yKTsKIH0KQEAgLTM0Myw4ICszNDMsOCBAQCB2b2lkKiBK
U09iamVjdEdldFByaXZhdGUoSlNPYmplY3RSZWYgb2JqZWN0KQogICAgIAogICAgIGlmIChqc09i
amVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjppbmZvKSkK
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlKCk7Ci0gICAgZWxzZSBpZiAoanNPYmplY3QtPmlu
aGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0Pjo6aW5mbykpCi0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0
UHJpdmF0ZSgpOworICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09i
amVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+OjppbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pio+KGpz
T2JqZWN0KS0+Z2V0UHJpdmF0ZSgpOwogICAgIAogICAgIHJldHVybiAwOwogfQpAQCAtMzU2LDgg
KzM1Niw4IEBAIGJvb2wgSlNPYmplY3RTZXRQcml2YXRlKEpTT2JqZWN0UmVmIG9iamVjdCwgdm9p
ZCogZGF0YSkKICAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpT
R2xvYmFsT2JqZWN0Pjo6aW5mbykpIHsKICAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGUoZGF0YSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTT2JqZWN0Pjo6aW5mbykpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8SlND
YWxsYmFja09iamVjdDxKU09iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGUoZGF0YSk7Cisg
ICAgfSBlbHNlIGlmIChqc09iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0Pjo6aW5mbykpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxs
YmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2
YXRlKGRhdGEpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgICAgIApAQCAtMzcz
LDggKzM3Myw4IEBAIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0CiAgICAgSWRlbnRpZmllciBuYW1l
KHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFsRGF0YSgpKSk7CiAgICAgaWYg
KGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46Omlu
Zm8pKQogICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xv
YmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwotICAgIGVs
c2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdD46Omlu
Zm8pKQotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTT2Jq
ZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOworICAgIGVsc2UgaWYg
KGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q+OjppbmZvKSkKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJv
cGVydHkobmFtZSk7CiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7CiB9CiAKQEAgLTM4
OSw4ICszODksOCBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29udGV4dFJl
ZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgICAgICBzdGF0aWNfY2Fz
dDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJpdmF0
ZVByb3BlcnR5KG5hbWUsIGpzVmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0g
ICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdD46Omlu
Zm8pKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3Q+Kj4o
anNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkobmFtZSwganNWYWx1ZSk7CisgICAgaWYgKGpz
T2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3Q+OjppbmZvKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGVQcm9wZXJ0eShuYW1l
LCBqc1ZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKQEAgLTQwNiw4ICs0MDYsOCBAQCBib29sIEpTT2JqZWN0RGVsZXRlUHJpdmF0ZVByb3BlcnR5
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbgogICAgICAgICBz
dGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+
ZGVsZXRlUHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdD46
OmluZm8pKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3Q+
Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7CisgICAgaWYgKGpzT2Jq
ZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+
OjppbmZvKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdD4qPihqc09iamVjdCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1l
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCBmNWRjY2NjNzc0OTAxYzU4OTdhN2QwOWIxNTkxOTVh
YmY3MjFmNTE5Li5hMjlhMjA3N2M2YjkzYzhhN2Y0ODlmYWE3MTE5ODE2YjUzMzg3OWM3IDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKKysrIGIvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC0xMzEsOCArMTMxLDggQEAgYm9vbCBKU1ZhbHVl
SXNPYmplY3RPZkNsYXNzKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTQ2xh
c3NSZWYganNDbGEKICAgICBpZiAoSlNPYmplY3QqIG8gPSBqc1ZhbHVlLmdldE9iamVjdCgpKSB7
CiAgICAgICAgIGlmIChvLT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD46OmluZm8pKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmpl
Y3Q8SlNHbG9iYWxPYmplY3Q+Kj4obyktPmluaGVyaXRzKGpzQ2xhc3MpOwotICAgICAgICBlbHNl
IGlmIChvLT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdD46OmluZm8pKQotICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3Q+Kj4o
byktPmluaGVyaXRzKGpzQ2xhc3MpOworICAgICAgICBlbHNlIGlmIChvLT5pbmhlcml0cygmSlND
YWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+OjppbmZvKSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdD4qPihvKS0+aW5oZXJpdHMoanNDbGFzcyk7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQ
cml2YXRlLmNwcCBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAppbmRleCA3ZTZiYjYzMjg4OWVlZmQ2OTY0YzkzYjFkYjUyMWU5OWJmNjg4NDhjLi45YmVl
YjgyZTM0YTZhMWUyOWY1Y2ZiNGU2YzczYWVjNDkyODZlM2VjIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKKysrIGIvSmF2YVNjcmlw
dENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC01OCw3ICs1OCw3IEBA
IHZvaWQgSlNXZWFrT2JqZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vha09iamVjdE1h
cFJlZiBtYXAsIHZvaWQqIGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRvSlMob2JqZWN0
KTsKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChvYmotPmluaGVy
aXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbykgfHwgb2JqLT5pbmhl
cml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdD46OmluZm8pKTsKKyAgICBBU1NFUlQob2Jq
LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8pIHx8IG9i
ai0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6
aW5mbykpOwogICAgIG1hcC0+bWFwKCkuc2V0KGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBmMDI4MWU0MzVkZjUxODgxZDQzMTJjOTZkNjA1MmYyY2NhMDEyYzU2Li42OGE0
YjY1NTg0ZTVjNTFhNGM0ZDE0MTkzYjM3OWE0YjdkMGZmOWU4IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTIyLDYgKzEyMiw3IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVu
dGltZS9KU05vdEFuT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNOdW1iZXJDZWxsLmNwcAogICAg
IHJ1bnRpbWUvSlNPYmplY3QuY3BwCisgICAgcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QuY3BwCiAgICAgcnVudGltZS9KU09OT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5jcHAKICAgICBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggMTQ3YWVkNWM4MzIyYzBkNDFjZDVhZDM0YTE4NWZhYWVmMTllMjY1My4uYjZm
YTM4MzlkMWY5YzNkNGU1ZDZhMTVkYzNhZTBkZjk5OTRlOWVkYiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3MiBAQAorMjAxMC0wNS0yMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbCBjYWxs
YWJsZSBvYmplY3RzIHNob3VsZCBoYXZlIGEgZ2xvYmFsIG9iamVjdCByZWZlcmVuY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDk1CisKKyAgICAg
ICAgQWxsIG9iamVjdHMgdGhhdCBtYXkgZXZlciByZXR1cm4gYSB2YWx1ZSBvdGhlciBDYWxsVHlw
ZU5vbmUKKyAgICAgICAgb3IgQ29uc3RydWN0VHlwZU5vbmUgbm93IGdldCBhIGdsb2JhbCBvYmpl
Y3QgaW4gdGhlaXIgY29uc3RydWN0b3IKKyAgICAgICAgYW5kIHN0b3JlIHRoYXQgaW4gdGhlaXIg
Zmlyc3QgYW5vbnltb3VzIHNsb3QuICBXZSBhZGQgYSBuZXcgdHlwZQorICAgICAgICBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QgdG8gYWxsb3cgdXMgdG8gc2hhcmUgdGhpcyBsb2dpYyBhcyBtdWNo
CisgICAgICAgIGFzIHBvc3NpYmxlLCBob3dldmVyIHNvbWUgb2JqZWN0cyBoYXZlIHNwZWNpZmlj
IGluaGVyaXRhbmNlIAorICAgICAgICByZXF1aXJlbWVudHMgc28gd2UgY2FuJ3QganVzdCB1c2Ug
aXQgdW5pdmVyc2FsbHkuCisKKyAgICAgICAgVG8gZW5mb3JjZSB0aGlzIHJlcXVpcmVtZW50IEpT
VmFsdWU6OmdldENhbGxEYXRhIGFuZCBnZXRDb25zdHJ1Y3REYXRhCisgICAgICAgIG1ha2UgdXNl
IG9mIGEgbmV3ICJpc1ZhbGlkQ2FsbGVlIiBmdW5jdGlvbiB0byBhc3NlcnQgdGhhdCBhbnkgb2Jq
ZWN0CisgICAgICAgIHRoYXQgcmV0dXJucyBhIHZhbHVlIG90aGVyIHRoYW4gQ2FsbFR5cGUvQ29u
c3RydWN0VHlwZU5vbmUgaGFzIGEKKyAgICAgICAgZ2xvYmFsIG9iamVjdCBpbiBhbm9ueW1vdXMg
c2xvdCAwLgorCisgICAgICAgIEluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHN0YXRpYyBmdW5jdGlv
biBzbG90cyBhcmUgY29udmVydGVkIGludG8KKyAgICAgICAgZnVuY3Rpb24gb2JqZWN0cyB3aXRo
IHRoZSBjb3JyZWN0IGdsb2JhbCBvYmplY3QsIGFsbCBwcm90b3R5cGUgb2JqZWN0cworICAgICAg
ICBhbmQgb3RoZXIgY2xhc3NlcyB3aXRoIHN0YXRpYyBmdW5jdGlvbiBzbG90cyBhbHNvIGdhaW4g
YSBnbG9iYWwgb2JqZWN0CisgICAgICAgIHJlZmVyZW5jZS4gIEhhcHBpbHkgdGhpcyBmaXhlcyB0
aGUgbG9uZyBzdGFuZGluZyBpc3N1ZSB3aGVyZSBob3N0CisgICAgICAgIGZ1bmN0aW9uIG9iamVj
dHMgZ2V0IGEgcHJvdG90eXBlIGZyb20gdGhlIGxleGljYWwgZ2xvYmFsIG9iamVjdCBvZiB0aGUK
KyAgICAgICAgZmlyc3QgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGVtLCBpbnN0ZWFkIG9mIHRoZSBn
bG9iYWwgb2JqZWN0IHRoYXQgdGhleQorICAgICAgICBhcmUgZGVmaW5lZCBvbi4KKworICAgICAg
ICAqIEFQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrQ29uc3RydWN0b3I6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcik6CisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5jdGlv
bik6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6KToKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25z
Lmg6CisgICAgICAgIChKU0M6Ojo6SlNDYWxsYmFja09iamVjdCk6CisgICAgICAgIChKU0M6Ojo6
c3RhdGljRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmNwcDoKKyAg
ICAgICAgKE9wYXF1ZUpTQ2xhc3M6OnByb3RvdHlwZSk6CisgICAgICAgICogQVBJL0pTQ29udGV4
dFJlZi5jcHA6CisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2Jq
ZWN0TWFrZSk6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbldpdGhDYWxsYmFjayk6Cisg
ICAgICAgIChKU09iamVjdE1ha2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU09iamVjdEdldFBy
aXZhdGUpOgorICAgICAgICAoSlNPYmplY3RTZXRQcml2YXRlKToKKyAgICAgICAgKEpTT2JqZWN0
R2V0UHJpdmF0ZVByb3BlcnR5KToKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5
KToKKyAgICAgICAgKEpTT2JqZWN0RGVsZXRlUHJpdmF0ZVByb3BlcnR5KToKKyAgICAgICAgKiBB
UEkvSlNWYWx1ZVJlZi5jcHA6CisgICAgICAgIChKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKToKKyAg
ICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHA6CisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50
ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgor
ICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoK
KyAgICAgICAgKEdsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVjdG9yOjpB
cnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJy
YXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJv
dG90eXBlLmg6CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6Qm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3Rv
dHlwZSk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6CisgICAgICAgICog
cnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0
b3I6OkRhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpE
YXRlUHJvdG90eXBlOjpEYXRlUHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90
b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToK
KyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rv
cjo6RnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlvblByb3RvdHlwZSk6CisgICAgICAg
IChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0dsb2Jh
bEV2YWxGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Okdsb2JhbEV2YWxGdW5jdGlvbjo6R2xv
YmFsRXZhbEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5o
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6
OkludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0M6OkpTVmFsdWU6OmdldENhbGxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0
Q29uc3RydWN0RGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6SlNGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3Qp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OkpTT05PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdFdpdGhHbG9iYWxPYmplY3QuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVmFsaWRDYWxs
ZWUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTG9v
a3VwLmNwcDoKKyAgICAgICAgKEpTQzo6c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6Ok1h
dGhPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAqIHJ1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJy
b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvclByb3RvdHlwZTo6TmF0
aXZlRXJyb3JQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5
cGUuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6Ok51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlw
ZSk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0
b3I6Ok9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpPYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb3RvdHlwZUZ1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvdG90eXBlRnVuY3Rpb246OlByb3RvdHlwZUZ1bmN0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3RvdHlwZUZ1bmN0aW9uLmg6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVj
dG9yOjpSZWdFeHBDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFJlZ0V4cCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpSZWdFeHBP
YmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6
OlJlZ0V4cFByb3RvdHlwZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
U3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKwogMjAxMC0wNS0yMCAgU3RldmUg
QmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
ZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0gYi9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4ZWQyM2U1NmYzNGYyNGEwNzgwZTM2
ODZiMWYyMTJlMDhmNmNkNjY5Li5iMzBlNWVhNDYxYzE1MzVhOWM4YTFlNTcxM2NmN2YzYjIxYjBk
ODdmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNDYzLDYgKzQ2Myw3IEBAIGphdmFzY3JpcHRj
b3JlX3NvdXJjZXMgKz0gXAogCUphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOdW1iZXJDZWxsLmNw
cCBcCiAJSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU051bWJlckNlbGwuaCBcCiAJSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgXAorCUphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCBcCiAJSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oIFwKIAlKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3Bw
IFwKIAlKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBcCmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggZmVmYWU5ZGQzYzI4YTMxNzNjZDQ4OGIwMmFjOWU0
ZDZkNDM0ZGZlMy4uNzhjNDNmZDg3ZDZkZTJiMjRhODQ1MzU5NGZiMDZmYWJiMzViZDBiYyAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTAxLDYgKzEwMSw3IEBAIF9fWjEyanNSZWdF
eHBGcmVlUDhKU1JlZ0V4cAogX19aMTVqc1JlZ0V4cENvbXBpbGVQS3RpMjRKU1JlZ0V4cElnbm9y
ZUNhc2VPcHRpb24yM0pTUmVnRXhwTXVsdGlsaW5lT3B0aW9uUGpQUEtjCiBfX1oxNWpzUmVnRXhw
RXhlY3V0ZVBLOEpTUmVnRXhwUEt0aWlQaWkKIF9fWk4xNE9wYXF1ZUpTU3RyaW5nNmNyZWF0ZUVS
S04zSlNDN1VTdHJpbmdFCitfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBO
U18xNEpTR2xvYmFsT2JqZWN0RU4zV1RGMTdOb25OdWxsUGFzc1JlZlB0cklOU185U3RydWN0dXJl
RUVFaVJLTlNfMTBJZGVudGlmaWVyRVBGTlNfN0pTVmFsdWVFUzJfUE5TXzhKU09iamVjdEVTQ19S
S05TXzdBcmdMaXN0RUUKIF9fWk4zSlNDMTBJZGVudGlmaWVyMTFhZGRTbG93Q2FzZUVQTlNfMTJK
U0dsb2JhbERhdGFFUE43V2ViQ29yZTEwU3RyaW5nSW1wbEUKIF9fWk4zSlNDMTBJZGVudGlmaWVy
MTFhZGRTbG93Q2FzZUVQTlNfOUV4ZWNTdGF0ZUVQTjdXZWJDb3JlMTBTdHJpbmdJbXBsRQogX19a
TjNKU0MxMElkZW50aWZpZXIyN2NoZWNrQ3VycmVudElkZW50aWZpZXJUYWJsZUVQTlNfMTJKU0ds
b2JhbERhdGFFCkBAIC0xMTEsNyArMTEyLDYgQEAgX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQ
TlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzEwSWRlbnRpZmllcjVlcXVhbEVQS043V2ViQ29yZTEw
U3RyaW5nSW1wbEVQS2MKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNGluZm9FCiBfX1pOM0pTQzEwSlNG
dW5jdGlvbjRuYW1lRVBOU185RXhlY1N0YXRlRQotX19aTjNKU0MxMEpTRnVuY3Rpb25DMUVQTlNf
OUV4ZWNTdGF0ZUVOM1dURjE3Tm9uTnVsbFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRWlSS05T
XzEwSWRlbnRpZmllckVQRk5TXzdKU1ZhbHVlRVMyX1BOU184SlNPYmplY3RFU0FfUktOU183QXJn
TGlzdEVFCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVOU185RXJyb3JUeXBl
RQogX19aTjNKU0MxMHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFTlNfOUVycm9yVHlwZUVQS2MK
IF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRU5TXzlFcnJvclR5cGVFUktOU183
VVN0cmluZ0UKQEAgLTE2OSwxNSArMTY5LDE0IEBAIF9fWk4zSlNDMTVjcmVhdGVUeXBlRXJyb3JF
UE5TXzlFeGVjU3RhdGVFUEtjCiBfX1pOM0pTQzE1dG9JbnQzMlNsb3dDYXNlRWRSYgogX19aTjNK
U0MxNkludGVybmFsRnVuY3Rpb240aW5mb0UKIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uNG5h
bWVFUE5TXzlFeGVjU3RhdGVFCi1fX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbkMyRVBOU18xMkpT
R2xvYmFsRGF0YUVOM1dURjE3Tm9uTnVsbFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRVJLTlNf
MTBJZGVudGlmaWVyRQorX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb25DMkVQTlNfMTJKU0dsb2Jh
bERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlT
dHJ1Y3R1cmVFRUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0
MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4z
SlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTRzeW1ib2xUYWJsZUdldEVSS05TXzEwSWRlbnRpZmllckVS
TlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE5Z2V0
T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVO
U18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDMTZ0b1VJbnQzMlNsb3dDYXNlRWRSYgogX19a
TjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19aTjNK
U0MxN1Byb3BlcnR5TmFtZUFycmF5M2FkZEVQTjdXZWJDb3JlMTBTdHJpbmdJbXBsRQotX19aTjNK
U0MxN1Byb3RvdHlwZUZ1bmN0aW9uQzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNz
UmVmUHRySU5TXzlTdHJ1Y3R1cmVFRUVpUktOU18xMElkZW50aWZpZXJFUEZOU183SlNWYWx1ZUVT
Ml9QTlNfOEpTT2JqZWN0RVNBX1JLTlNfN0FyZ0xpc3RFRQotX19aTjNKU0MxN1Byb3RvdHlwZUZ1
bmN0aW9uQzFFUE5TXzlFeGVjU3RhdGVFaVJLTlNfMTBJZGVudGlmaWVyRVBGTlNfN0pTVmFsdWVF
UzJfUE5TXzhKU09iamVjdEVTNl9SS05TXzdBcmdMaXN0RUUKK19fWk4zSlNDMTdQcm90b3R5cGVG
dW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RU4zV1RGMTdOb25O
dWxsUGFzc1JlZlB0cklOU185U3RydWN0dXJlRUVFaVJLTlNfMTBJZGVudGlmaWVyRVBGTlNfN0pT
VmFsdWVFUzJfUE5TXzhKU09iamVjdEVTQ19SS05TXzdBcmdMaXN0RUUKIF9fWk4zSlNDMTdjb25z
dHJ1Y3RGdW5jdGlvbkVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdBcmdMaXN0RVJLTlNfMTBJZGVudGlm
aWVyRVJLTlNfN1VTdHJpbmdFaQogX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVBOU184
SlNPYmplY3RFCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCkBA
IC0xOTUsNiArMTk0LDcgQEAgX19aTjNKU0MyM0Fic3RyYWN0U2FtcGxpbmdDb3VudGVyNGR1bXBF
dgogX19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRVBOU184
SlNPYmplY3RFTlNfN0pTVmFsdWVFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDMjNzZXRVcFN0YXRp
Y0Z1bmN0aW9uU2xvdEVQTlNfOUV4ZWNTdGF0ZUVQS05TXzlIYXNoRW50cnlFUE5TXzhKU09iamVj
dEVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzI0Y3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yRVBOU185RXhlY1N0YXRlRQorX19aTjNKU0MyNEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RU4zV1RGMTdOb25OdWxsUGFzc1Jl
ZlB0cklOU185U3RydWN0dXJlRUVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFt
ZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4z
SlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0dsb2JhbERh
dGFFCiBfX1pOM0pTQzNOYU5FCkBAIC0yNDAsNiArMjQwLDcgQEAgX19aTjNKU0M3SlNBcnJheUMx
RU4zV1RGMTdOb25OdWxsUGFzc1JlZlB0cklOU185U3RydWN0dXJlRUVFCiBfX1pOM0pTQzdKU0Fy
cmF5QzFFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1cmVFRUVSS05TXzdBcmdM
aXN0RQogX19aTjNKU0M3SlNBcnJheUMyRU4zV1RGMTdOb25OdWxsUGFzc1JlZlB0cklOU185U3Ry
dWN0dXJlRUVFCiBfX1pOM0pTQzdKU0FycmF5RDJFdgorX19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxp
ZENhbGxlZUV2CiBfX1pOM0pTQzdQcm9maWxlMTByZXN0b3JlQWxsRXYKIF9fWk4zSlNDN1Byb2Zp
bGU1Zm9jdXNFUEtOU18xMVByb2ZpbGVOb2RlRQogX19aTjNKU0M3UHJvZmlsZTdleGNsdWRlRVBL
TlNfMTFQcm9maWxlTm9kZUUKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmd5cGkgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IDJkMWYy
MGEyZTE0ZmJmMTQxMzg4ZjIzY2JkNDJjOWI3ZjRmNjI5YjkuLjAwNmZhOWQ0ODhjYzUzMzk4YjUx
Mzg0N2U2MjYxMWNjZTJhMzNkOTYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmd5cGkKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAt
MjQ3LDYgKzI0Nyw4IEBACiAgICAgICAgICAgICAncnVudGltZS9KU051bWJlckNlbGwuaCcsCiAg
ICAgICAgICAgICAncnVudGltZS9KU09iamVjdC5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUv
SlNPYmplY3QuaCcsCisgICAgICAgICAgICAncnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QuY3BwJywKKyAgICAgICAgICAgICdydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5o
JywKICAgICAgICAgICAgICdydW50aW1lL0pTT05PYmplY3QuY3BwJywKICAgICAgICAgICAgICdy
dW50aW1lL0pTT05PYmplY3QuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmNwcCcsCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qIGIvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvagppbmRleCA1YWNlNDljMjNmZmUxMTUwNDlhNjcyOTg3MDg1ZWMwNTdhODc2OWI2Li41
YmRkMTc1OWI2NzJmMWZjNzI2YzkyYWZmZjBiYzhkMDVkNGNkODU3IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKQEAgLTg1Myw2ICs4NTMsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5c
cnVudGltZVxKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcSlNPTk9iamVjdC5jcHAiDQogCQkJCT4NCiAJCQk8
L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTlhZTc3ZTYzZDBlZWE3Yjg5OWJiMTQxYjNjMzNj
YmQ1MzY0NmVlZi4uYmUxYjhjNzJhYzVmYjlkOGJiODQ5YWU5M2EyZTBmMTc2NTBlNDQwMCAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zMDksNiArMzA5LDggQEAKIAkJQTc2RUU2NTkwRkFFNTlENTAwM0Yw
NjlBIC8qIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RUU2NTgwRkFFNTlENTAwM0YwNjlBIC8qIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3Nzk1NTkwMTAxQTc0RDUwMDExNEU1NSAvKiBNYXJrU3RhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk1NThGMTAxQTc0RDUw
MDExNEU1NSAvKiBNYXJrU3RhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzgyRjFBNTBFRUM5RkEyMDAzNjI3M0YgLyogRXhlY3V0YWJsZUFs
bG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3ODJGMUE0MEVFQzlGQTIwMDM2MjczRiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yUG9z
aXguY3BwICovOyB9OworCQlBNzgzQTBEMTExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzgzQTBEMDExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc4
M0EyQUIxMUE1QkU4NDAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgzQTJBQTExQTVC
RTg0MDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCAqLzsgfTsKIAkJQTc5
MUVGMjgwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzkxRUYyNjBGMTFFMDc5MDBBRTFGNjggLyog
SlNCeXRlQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBNzkxRUYyOTBGMTFFMDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5MUVGMjcwRjExRTA3
OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmNwcCAqLzsgfTsKIAkJQTdBMUY3QUMwRjI1MkIzQzAw
RTE4NEUyIC8qIEJ5dGVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0ExRjdBQTBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmNwcCAq
LzsgfTsKQEAgLTg5OCw2ICs5MDAsOCBAQAogCQlBNzZFRTY1ODBGQUU1OUQ1MDAzRjA2OUEgLyog
TmF0aXZlRnVuY3Rpb25XcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5hdGl2ZUZ1bmN0aW9uV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
Nzc5NTU4RjEwMUE3NEQ1MDAxMTRFNTUgLyogTWFya1N0YWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hcmtTdGFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzgyRjFBNDBFRUM5RkEyMDAzNjI3M0YgLyogRXhlY3V0YWJsZUFsbG9jYXRvclBvc2l4LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGFibGVBbGxvY2F0
b3JQb3NpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3ODNBMEQwMTFBMzZE
Q0EwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE3ODNBMkFBMTFBNUJFODQwMDU2M0QyMCAvKiBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc5MUVGMjYwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQnl0ZUFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3OTFFRjI3MEYxMUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJheS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0J5dGVBcnJheS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OUVEQjA4MTE1MzFDRDYwMDE5RTkxMiAvKiBKU09i
amVjdFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPYmpl
Y3RSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzEwLDYgKzE3
MTQsOCBAQAogCQkJCTE0QkZDRTY4MTBDREIxRkMwMDM2NENDRSAvKiBXZWFrR0NNYXAuaCAqLywK
IAkJCQkxNDAzNURCMDEwREJGQjJBMDBGRkZGRTcgLyogV2Vha0dDUHRyLmggKi8sCiAJCQkJMTQy
MEJFN0ExMEFBNkREQjAwRjQ1NUQyIC8qIFdlYWtSYW5kb20uaCAqLywKKwkJCQlBNzgzQTBEMDEx
QTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggKi8sCisJCQkJQTc4
M0EyQUExMUE1QkU4NDAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgKi8s
CiAJCQkpOwogCQkJcGF0aCA9IHJ1bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjE0Nyw2ICsyMTUzLDcgQEAKIAkJCQk4NjlEMDRBRjExOTNCNTREMDA4MDM0NzUgLyogQ2Fj
aGVkVHJhbnNjZW5kZW50YWxGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZDNTY4RTEx
MUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODZDNTY4RTIxMUEyMTNFRTAwMDdGN0YwIC8qIE1JUFNBc3NlbWJsZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE3ODNBMEQxMTFBMzZEQ0EwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjYwMCw2ICsyNjA3LDcgQEAKIAkJCQk4NjI2QkVD
RjExOTI4RTM5MDA3ODJGQUIgLyogU3RyaW5nU3RhdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNzEyMzZFNTExOTVGMzNDMDBCRDIxNzQgLyogSklUT3Bjb2RlczMyXzY0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2QzU2OEUwMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFS
TS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzgzQTJBQjExQTVCRTg0MDA1NjNEMjAgLyogSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IGUyNzdhZjM3N2FhYjlkNjRiNjQ4MWFh
MjBlODkyZTA3N2NmODZjNDUuLmRhYzgzMmE5YzQxZDQ1OWRhOTdmMDYxZWJkYWQ2YzE1M2ZjNDM1
MjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTEz
NjksNyArMTM2OSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1
dGlvbkZsYWcgZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAgICAgICAgICovCiAgICAg
ICAgIGludCBkc3QgPSB2UENbMV0udS5vcGVyYW5kOwogICAgICAgICBpbnQgcmVnRXhwID0gdlBD
WzJdLnUub3BlcmFuZDsKLSAgICAgICAgY2FsbEZyYW1lLT5yKGRzdCkgPSBKU1ZhbHVlKG5ldyAo
Z2xvYmFsRGF0YSkgUmVnRXhwT2JqZWN0KGNhbGxGcmFtZS0+c2NvcGVDaGFpbigpLT5nbG9iYWxP
YmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5yZWdleHAo
cmVnRXhwKSkpOworICAgICAgICBjYWxsRnJhbWUtPnIoZHN0KSA9IEpTVmFsdWUobmV3IChnbG9i
YWxEYXRhKSBSZWdFeHBPYmplY3QoY2FsbEZyYW1lLT5zY29wZUNoYWluKCktPmdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLT5zY29wZUNoYWluKCktPmdsb2JhbE9iamVjdC0+cmVnRXhwU3RydWN0dXJl
KCksIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPnJlZ2V4cChyZWdFeHApKSk7CiAKICAgICAgICAg
dlBDICs9IE9QQ09ERV9MRU5HVEgob3BfbmV3X3JlZ2V4cCk7CiAgICAgICAgIE5FWFRfSU5TVFJV
Q1RJT04oKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDgwYzBhNzNhMWFlMzUxNWU1NzBj
YmExY2MwNjI3MTk1ZDgyNTE2OGYuLjIzZDNhMmM1YzAwODI5ZTFiMzk0ZTM5ODk4ZWE4YjIyMzNk
OTA4ZjcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMjk1OSw3ICsyOTU5LDcgQEAgREVG
SU5FX1NUVUJfRlVOQ1RJT04oSlNPYmplY3QqLCBvcF9uZXdfcmVnZXhwKQogewogICAgIFNUVUJf
SU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKIAotICAgIHJldHVybiBuZXcgKHN0YWNrRnJh
bWUuZ2xvYmFsRGF0YSkgUmVnRXhwT2JqZWN0KHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCBzdGFja0ZyYW1lLmFyZ3NbMF0ucmVn
RXhwKCkpOworICAgIHJldHVybiBuZXcgKHN0YWNrRnJhbWUuZ2xvYmFsRGF0YSkgUmVnRXhwT2Jq
ZWN0KHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0YWNrRnJh
bWUuY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCBz
dGFja0ZyYW1lLmFyZ3NbMF0ucmVnRXhwKCkpOwogfQogCiBERUZJTkVfU1RVQl9GVU5DVElPTihF
bmNvZGVkSlNWYWx1ZSwgb3BfYml0b3IpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwIGIvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBhZTQ3ZDU1OTk0Y2IwNjFmYjY5NmU4
YTE2N2U4MTJhYmU0ZTMwODRlLi40NmVhY2NjNzA4ZGIwOThmYzg1OGE1NjkxNGFmYTBiOTdiNTNj
MzA1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTE1MCwxOSArMTUwLDE5IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NF
TEwoR2xvYmFsT2JqZWN0KTsKIEdsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KGNvbnN0IFZlY3Rv
cjxVU3RyaW5nPiYgYXJndW1lbnRzKQogICAgIDogSlNHbG9iYWxPYmplY3QoKQogewotICAgIHB1
dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlcihnbG9iYWxFeGVjKCksIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCks
IDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiZGVidWciKSwgZnVuY3Rpb25EZWJ1ZykpOwot
ICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIE5h
dGl2ZUZ1bmN0aW9uV3JhcHBlcihnbG9iYWxFeGVjKCksIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0
dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicHJpbnQiKSwgZnVuY3Rpb25Qcmlu
dCkpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVj
KCkpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihnbG9iYWxFeGVjKCksIHByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlKCksIDAsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicXVpdCIpLCBmdW5jdGlv
blF1aXQpKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFs
RXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZ2xvYmFsRXhlYygpLCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSgpLCAwLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImdjIiksIGZ1bmN0
aW9uR0MpKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFs
RXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZ2xvYmFsRXhlYygpLCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInZlcnNpb24iKSwg
ZnVuY3Rpb25WZXJzaW9uKSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBu
ZXcgKGdsb2JhbEV4ZWMoKSkgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMoKSwgcHJv
dG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJy
dW4iKSwgZnVuY3Rpb25SdW4pKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCks
IG5ldyAoZ2xvYmFsRXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZ2xvYmFsRXhlYygpLCBw
cm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwg
ImxvYWQiKSwgZnVuY3Rpb25Mb2FkKSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhl
YygpLCBuZXcgKGdsb2JhbEV4ZWMoKSkgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMo
KSwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVj
KCksICJjaGVja1N5bnRheCIpLCBmdW5jdGlvbkNoZWNrU3ludGF4KSk7Ci0gICAgcHV0RGlyZWN0
RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBuZXcgKGdsb2JhbEV4ZWMoKSkgTmF0aXZlRnVuY3Rpb25X
cmFwcGVyKGdsb2JhbEV4ZWMoKSwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRl
bnRpZmllcihnbG9iYWxFeGVjKCksICJyZWFkbGluZSIpLCBmdW5jdGlvblJlYWRsaW5lKSk7Cisg
ICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBuZXcgKGdsb2JhbEV4ZWMoKSkgTmF0
aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMoKSwgdGhpcywgcHJvdG90eXBlRnVuY3Rpb25T
dHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJkZWJ1ZyIpLCBmdW5jdGlv
bkRlYnVnKSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBuZXcgKGdsb2Jh
bEV4ZWMoKSkgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMoKSwgdGhpcywgcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJwcmlu
dCIpLCBmdW5jdGlvblByaW50KSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygp
LCBuZXcgKGdsb2JhbEV4ZWMoKSkgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMoKSwg
dGhpcywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgSWRlbnRpZmllcihnbG9iYWxF
eGVjKCksICJxdWl0IiksIGZ1bmN0aW9uUXVpdCkpOworICAgIHB1dERpcmVjdEZ1bmN0aW9uKGds
b2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihnbG9i
YWxFeGVjKCksIHRoaXMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIElkZW50aWZp
ZXIoZ2xvYmFsRXhlYygpLCAiZ2MiKSwgZnVuY3Rpb25HQykpOworICAgIHB1dERpcmVjdEZ1bmN0
aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBl
cihnbG9iYWxFeGVjKCksIHRoaXMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElk
ZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAidmVyc2lvbiIpLCBmdW5jdGlvblZlcnNpb24pKTsKKyAg
ICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBOYXRp
dmVGdW5jdGlvbldyYXBwZXIoZ2xvYmFsRXhlYygpLCB0aGlzLCBwcm90b3R5cGVGdW5jdGlvblN0
cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInJ1biIpLCBmdW5jdGlvblJ1
bikpOworICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVj
KCkpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihnbG9iYWxFeGVjKCksIHRoaXMsIHByb3RvdHlwZUZ1
bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAibG9hZCIpLCBm
dW5jdGlvbkxvYWQpKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIG5ldyAo
Z2xvYmFsRXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZ2xvYmFsRXhlYygpLCB0aGlzLCBw
cm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwg
ImNoZWNrU3ludGF4IiksIGZ1bmN0aW9uQ2hlY2tTeW50YXgpKTsKKyAgICBwdXREaXJlY3RGdW5j
dGlvbihnbG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBw
ZXIoZ2xvYmFsRXhlYygpLCB0aGlzLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBJ
ZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgInJlYWRsaW5lIiksIGZ1bmN0aW9uUmVhZGxpbmUpKTsK
IAogI2lmIEVOQUJMRShTQU1QTElOR19GTEFHUykKLSAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9i
YWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZ2xvYmFs
RXhlYygpLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2Jh
bEV4ZWMoKSwgInNldFNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25TZXRTYW1wbGluZ0ZsYWdzKSk7
Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBuZXcgKGdsb2JhbEV4ZWMoKSkg
TmF0aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMoKSwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1
Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJjbGVhclNhbXBsaW5nRmxhZ3Mi
KSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbihn
bG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZ2xv
YmFsRXhlYygpLCB0aGlzLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlm
aWVyKGdsb2JhbEV4ZWMoKSwgInNldFNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25TZXRTYW1wbGlu
Z0ZsYWdzKSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFsRXhlYygpLCBuZXcgKGdsb2Jh
bEV4ZWMoKSkgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGdsb2JhbEV4ZWMoKSwgdGhpcywgcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJjbGVh
clNhbXBsaW5nRmxhZ3MiKSwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpKTsKICNlbmRpZgog
CiAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxFeGVjKCkp
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNw
cCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZmI0
NDQ5NDA1MTMwYmQ1NTdkOTNjZjU3NmQ1N2NiMzc2YjhkNTY4YS4uYzE1OWJlNGEzYWQyMTVjMWZk
NzI5OGFiNTUzNDFiMGY2MDgzMTQ1NiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwCkBAIC0zNyw4ICszNyw4IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NF
TEwoQXJyYXlDb25zdHJ1Y3Rvcik7CiAgICAgCiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5Q29uc3RydWN0b3JJc0FycmF5KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwg
Y29uc3QgQXJnTGlzdCYpOwogCi1BcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEFy
cmF5UHJvdG90eXBlKiBhcnJheVByb3RvdHlwZSwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlv
blN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwg
c3RydWN0dXJlLCBJZGVudGlmaWVyKGV4ZWMsIGFycmF5UHJvdG90eXBlLT5jbGFzc0luZm8oKS0+
Y2xhc3NOYW1lKSkKK0FycmF5Q29uc3RydWN0b3I6OkFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSwgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJvdG90eXBlLCBTdHJ1
Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgSWRlbnRpZmll
cihleGVjLCBhcnJheVByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkpCiB7CiAgICAg
Ly8gRUNNQSAxNS40LjMuMSBBcnJheS5wcm90b3R5cGUKICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbihleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBhcnJheVByb3RvdHlwZSwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwpAQCAtNDcsNyArNDcsNyBAQCBBcnJh
eUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBh
c3NSZWZQdHI8U3RydWN0dXJlPgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seSB8IERv
bnRFbnVtIHwgRG9udERlbGV0ZSk7CiAKICAgICAvLyBFUzUKLSAgICBwdXREaXJlY3RGdW5jdGlv
bldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVy
KGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuaXNBcnJheSwgYXJyYXlDb25zdHJ1Y3RvcklzQXJyYXkpLCBEb250RW51bSk7CisgICAgcHV0
RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0
dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNBcnJheSwgYXJyYXlDb25zdHJ1Y3Rvcklz
QXJyYXkpLCBEb250RW51bSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVj
dEFycmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3Mp
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IDZkMjU0MDAx
NDVhY2ZkZWM0MTE0MjdkNjk5YjQ2ZDQwNGZiZGY5OWYuLjVlMTQwOGY1M2Q1NDMwOTk2Yzg2ZGNj
MzNhN2U1NDYxZGY4MDJjOTYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1
Y3Rvci5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQXJy
YXlDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiwgQXJyYXlQcm90b3R5cGUqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgQXJyYXlDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0
cnVjdHVyZT4sIEFycmF5UHJvdG90eXBlKiwgU3RydWN0dXJlKik7CiAKICAgICAgICAgdmlydHVh
bCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwogICAgICAg
ICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDk5NTY0YThiNWFkZjcwYTg4MTM3NmZl
MDkzYmE4NjlmY2Q4MmU0MWIuLjcwY2U2OWY3ZGU0MTNmMmQ2ODQxYzAyMTQxMThhNGYwYTk2OTE0
NGIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3Bw
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMTYs
OSArMTE2LDEwIEBAIGNvbnN0IENsYXNzSW5mbyBBcnJheVByb3RvdHlwZTo6aW5mbyA9IHsiQXJy
YXkiLCAmSlNBcnJheTo6aW5mbywgMCwgRXhlY1N0YXRlOjphCiAqLwogCiAvLyBFQ01BIDE1LjQu
NAotQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBlKE5vbk51bGxQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gc3RydWN0dXJlKQorQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0
dXJlKQogICAgIDogSlNBcnJheShzdHJ1Y3R1cmUpCiB7CisgICAgcHV0QW5vbnltb3VzVmFsdWUo
MCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgK
aW5kZXggZTUyOTE0YzJmMmFhOTEzMmQ1ZDdlZjhiNGZkYTMxODQzOTAxNjY3Mi4uNDI2NjVlM2Yy
NmIwMzYxMDRkYmFiNjZhYWVjYzJmYjhiYTFkNjUyMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuaApAQCAtMjgsMTMgKzI4LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgY2xhc3MgQXJyYXlQcm90b3R5cGUgOiBwdWJsaWMgSlNBcnJheSB7CiAgICAgcHVibGljOgot
ICAgICAgICBleHBsaWNpdCBBcnJheVByb3RvdHlwZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+KTsKKyAgICAgICAgZXhwbGljaXQgQXJyYXlQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKIAogICAgICAgICBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1
YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQog
ICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CisKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
KTsKKyAgICAgICAgfQorCisgICAgcHJvdGVjdGVkOgorICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsg
MTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAppbmRleCBiMGQ4ZGYzOGVhNWRmZWNkOWYwZTA0YWE0
Y2E0OThlMzA1N2U5MWI5Li4wN2JjYzk3NjYyMzNmZjg3N2VmNjQzYTdiODE2NmZmNzNhN2EyYmVi
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5j
cHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBA
IC0yOCw4ICsyOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9D
RUxMKEJvb2xlYW5Db25zdHJ1Y3Rvcik7CiAKLUJvb2xlYW5Db25zdHJ1Y3Rvcjo6Qm9vbGVhbkNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBz
dHJ1Y3R1cmUsIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUpCi0gICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSwgSWRlbnRpZmllcihl
eGVjLCBib29sZWFuUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKSkKK0Jvb2xlYW5D
b25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1
cmUsIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUpCisgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBJZGVu
dGlmaWVyKGV4ZWMsIGJvb2xlYW5Qcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpKQog
ewogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5w
cm90b3R5cGUsIGJvb2xlYW5Qcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3Ry
dWN0b3IuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKaW5k
ZXggMWQ4YTI2YTU3MDA5YjViY2FlY2QwOTRjY2QyYmQzMWY0YWIzYWNiNS4uMGYzZWZhN2E4MGMz
MWEyOGUyY2JlODhkODJlOTg5MTUyZjY4OGQ4OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgQm9vbGVhbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogICAgIHB1YmxpYzoKLSAgICAgICAgQm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIE5v
bk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIEJvb2xlYW5Qcm90b3R5cGUqKTsKKyAgICAgICAg
Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBh
c3NSZWZQdHI8U3RydWN0dXJlPiwgQm9vbGVhblByb3RvdHlwZSopOwogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0
RGF0YSYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90
eXBlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5k
ZXggOGQzMzhmOWMzYmYzN2ViYTI1YmJiZmRhZTc1ZDgyNjk5YzBmZTg5OC4uNDM3ODE2NDk3Mzli
NThmNDQwZTM0YmY1ZjFjZWQxZmZmZDhjNzBhZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgc3RhdGljIEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqLCBKU09iamVj
dCosIEpTVmEKIAogLy8gRUNNQSAxNS42LjQKIAotQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblBy
b3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3Ry
dWN0dXJlLCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKQorQm9vbGVhblBy
b3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBT
dHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKQogICAgIDogQm9vbGVhbk9iamVj
dChzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShqc0Jvb2xlYW4oZmFsc2UpKTsK
IAotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVj
KSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUs
IDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZywgYm9vbGVhblByb3RvRnVuY1RvU3Ry
aW5nKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
ZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVu
Y3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS52YWx1ZU9mLCBib29sZWFu
UHJvdG9GdW5jVmFsdWVPZiksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS50b1N0cmluZywgYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nKSwgRG9udEVudW0p
OworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVj
KSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSwgMCwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnZhbHVlT2YsIGJvb2xlYW5Q
cm90b0Z1bmNWYWx1ZU9mKSwgRG9udEVudW0pOwogfQogCiAKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggY2M2OWIzZjAwYzY5OWQ5OTA3NTIzMjE3MmM1YTg3
OTE0Mjk4ZDZkZS4uZGRhZGM0MzBjNTQ4ZDg2NTM0NTQ0MTRjMDI1NmE0MmNlNWI2ZWFhMSAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKQEAgLTI3LDcgKzI3LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBCb29sZWFuUHJvdG90eXBlIDogcHVibGlj
IEJvb2xlYW5PYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgQm9vbGVhblByb3RvdHlwZShF
eGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBTdHJ1Y3R1cmUqIHByb3Rv
dHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsKKyAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFN0cnVj
dHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUpOwogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0
b3IuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmluZGV4
IGFiOTVkMDY2OGQxNmY3NWFmYWJhYmVhMjg3MmYxNTVmYmFlZWYyNzYuLmQ3MzJhNGYwYmNkNDlm
OTY0MWJjNDkwYTE1ZjVmODc2NTViMThhYTYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTU4LDE0ICs1OCwxNCBAQCBzdGF0aWMgSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQYXJzZShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0
IEFyZwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlTm93KEV4ZWNTdGF0ZSosIEpT
T2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYpOwogc3RhdGljIEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlVVRDKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJn
TGlzdCYpOwogCi1EYXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBTdHJ1Y3R1cmUqIHBy
b3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eXBlKQot
ICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIElk
ZW50aWZpZXIoZXhlYywgZGF0ZVByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkpCitE
YXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0
dXJlLCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCBEYXRlUHJvdG90eXBl
KiBkYXRlUHJvdG90eXBlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0
YSgpLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgSWRlbnRpZmllcihleGVjLCBkYXRlUHJvdG90
eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKSkKIHsKICAgICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGRhdGVQcm90b3R5cGUs
IERvbnRFbnVtfERvbnREZWxldGV8UmVhZE9ubHkpOwogCi0gICAgICBwdXREaXJlY3RGdW5jdGlv
bldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVy
KGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkucGFyc2UsIGRhdGVQYXJzZSksIERvbnRFbnVtKTsKLSAgICAgIHB1dERpcmVjdEZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIo
ZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDcsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5VVEMsIGRhdGVVVEMpLCBEb250RW51bSk7Ci0gICAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMs
IHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubm93
LCBkYXRlTm93KSwgRG9udEVudW0pOworICAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJh
bnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkucGFyc2UsIGRhdGVQYXJzZSksIERvbnRFbnVtKTsKKyAgICAgIHB1dERpcmVjdEZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBw
ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgNywgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLlVUQywgZGF0ZVVUQyksIERvbnRFbnVtKTsKKyAgICAgIHB1dERp
cmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5j
dGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVy
ZSwgMCwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5vdywgZGF0ZU5vdyksIERvbnRFbnVtKTsKIAog
ICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCwganNOdW1iZXIoZXhlYywgNyksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRl
KTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCmluZGV4IDEwZTQ1
MGU3Y2QyYjU5ZDJhY2MzYjU1MjZlMDNhMGY4ZmMyZDU5MDYuLmM4Y2E0NTY4MGY3NzM2NDg4ZGU1
ZWJkMmMyYTBlZDJlMDE5NzczMjEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUNvbnN0cnVjdG9yLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3Ry
dWN0b3IuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIERh
dGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+LCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCBEYXRlUHJvdG90
eXBlKik7CisgICAgICAgIERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFN0cnVjdHVyZSogcHJvdG90eXBlRnVu
Y3Rpb25TdHJ1Y3R1cmUsIERhdGVQcm90b3R5cGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDEwOGZmNTU0MTEy
NDdkZGMyMWVkOGZiZTYwOTUzNWE0NzQ0NWJlZTMuLmE1ZGZhYmQxZjk5ZWY5OWFhMzcwY2U1NmJl
NDEyODNjY2Y3ZjZiN2UgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cApAQCAtNDE4LDEwICs0MTgsMTEgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVQcm90b3R5cGU6Omlu
Zm8gPSB7IkRhdGUiLCAmRGF0ZUluc3RhbmNlOjppbmZvLCAwLCBFeGVjU3RhdGUKIAogLy8gRUNN
QSAxNS45LjQKIAotRGF0ZVByb3RvdHlwZTo6RGF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMs
IE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQorRGF0ZVByb3RvdHlwZTo6
RGF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQogICAgIDogRGF0ZUlu
c3RhbmNlKGV4ZWMsIHN0cnVjdHVyZSkKIHsKICAgICAvLyBUaGUgY29uc3RydWN0b3Igd2lsbCBi
ZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0LgorICAg
IHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgRGF0ZVByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZVByb3RvdHlwZS5oCmluZGV4IDYxMmNhMDZhNGU5Y2E4NzE5MDZjMzY0NmJhYjZiNDRkMjZh
MmE5YWIuLmUzNjcyYWFlM2Y5ZTQzOThhOGZiMTc2OWUzOWI4MWE5YmNhNzdlZmEgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgY2xhc3MgRGF0ZVByb3RvdHlwZSA6IHB1YmxpYyBEYXRlSW5zdGFuY2Ug
ewogICAgIHB1YmxpYzoKLSAgICAgICAgRGF0ZVByb3RvdHlwZShFeGVjU3RhdGUqLCBOb25OdWxs
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKKyAgICAgICAgRGF0ZVByb3RvdHlwZShFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4pOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CmluZGV4IGI5YzNmNTg2YzI5OGU0YmI2YWY2MGJhMGMyNGNmMjM3YzYyNDFlNjEuLjRhNDU1OWU2
YzdkZmU1YjU2YmE1ZDc0MmJkZTk5OWRhY2RhYjQ0N2MgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2UgSlND
IHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChFcnJvckNvbnN0cnVjdG9yKTsKIAotRXJy
b3JDb25zdHJ1Y3Rvcjo6RXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBFcnJvclByb3RvdHlwZSogZXJyb3JQcm90
b3R5cGUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSwgSWRlbnRpZmllcihleGVjLCBlcnJvclByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNz
TmFtZSkpCitFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBzdHJ1Y3R1cmUsIEVycm9yUHJvdG90eXBlKiBlcnJvclByb3RvdHlwZSkKKyAgICA6IElu
dGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIElkZW50aWZpZXIoZXhlYywgZXJyb3JQcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05h
bWUpKQogewogICAgIC8vIEVDTUEgMTUuMTEuMy4xIEVycm9yLnByb3RvdHlwZQogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGVy
cm9yUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IGUzZDc4OWIwZDYwODY0NTQ0
ZWY1YjQwMjlmZGY5NDE4ZjA2YTQ1MmMuLmMwZTMzMjNhZjVmY2YyOWQ2ZGZkYzVhZWVkMjY4NzQ1
MWExNDFjNzYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCkBA
IC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgRXJyb3JDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEVy
cm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwg
RXJyb3JQcm90b3R5cGUqKTsKKyAgICAgICAgRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIEVycm9yUHJvdG90
eXBlKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCmluZGV4IGViMzU3MzM3Y2UyMmUyYTdjYTRmNzNlNmIyOTgxMGY0NDNl
NTIxNTEuLjcyZmE0YzRhZmI0OWVkMmIwNWE0ZDIxNmVkM2Y3Y2ZiMjM5MTkyZTAgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0zNSw3ICszNSw3IEBAIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoRXJyb3JQcm90b3R5cGUpOwogc3RhdGljIEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBlcnJvclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSosIEpTT2JqZWN0
KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYpOwogCiAvLyBFQ01BIDE1LjkuNAotRXJyb3JQcm90
b3R5cGU6OkVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUpCitFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0
cnVjdHVyZSwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSkKICAgICA6IEVy
cm9ySW5zdGFuY2Uoc3RydWN0dXJlKQogewogICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJl
IGFkZGVkIGxhdGVyIGluIEVycm9yQ29uc3RydWN0b3IncyBjb25zdHJ1Y3RvcgpAQCAtNDMsNyAr
NDMsNyBAQCBFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhl
YywgIkVycm9yIiksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubWVzc2FnZSwganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJV
bmtub3duIGVycm9yIiksIERvbnRFbnVtKTsKIAotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywg
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0
cmluZywgZXJyb3JQcm90b0Z1bmNUb1N0cmluZyksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25X
cmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZywgZXJyb3JQcm90b0Z1bmNUb1N0cmluZyks
IERvbnRFbnVtKTsKIH0KIAogSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJvdG9GdW5jVG9T
dHJpbmcoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEpTVmFsdWUgdGhpc1ZhbHVlLCBjb25z
dCBBcmdMaXN0JikKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90
b3R5cGUuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAppbmRleCBh
NTYxNTkwMmQzMDE0MmI5NTNhOGFmMjI3NTE2MmNkNmVhOTU3NzQ3Li5mY2UyNzQyZGUzNjI4ZjVj
ZTk3YmQ1YjQwMGI3NDUyNDBiOTg2ZTdlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3Mg
RXJyb3JQcm90b3R5cGUgOiBwdWJsaWMgRXJyb3JJbnN0YW5jZSB7CiAgICAgcHVibGljOgotICAg
ICAgICBFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+LCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsKKyAgICAgICAgRXJy
b3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+LCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsKICAg
ICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDliMGIxYmJlNDZjYmQ4ZTAzYjYzMGE3OWMxMDk1
ZjQ3Y2E1ZDg3NmYuLmM4Mjk5YTk5MjhiZjE3ZmNiOGRmMGVmZWM1ZWFhYjMxNWViYTVmY2QgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
KysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAt
MzUsOCArMzUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VM
TChGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAotRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25D
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
c3RydWN0dXJlLCBGdW5jdGlvblByb3RvdHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCi0gICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSwgSWRlbnRpZmll
cihleGVjLCBmdW5jdGlvblByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkpCitGdW5j
dGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBz
dHJ1Y3R1cmUsIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlwZSkKKyAgICA6IElu
dGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIElkZW50aWZpZXIoZXhlYywgZnVuY3Rpb25Qcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFz
c05hbWUpKQogewogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wcm90b3R5cGUsIGZ1bmN0aW9uUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmgKaW5kZXggMTk3ZjMyMGMyODk2NjI3ODcyNzQxZWJmNTdjYTFlOTRiMDA0MzI2My4u
NmFmNDg2MTFkN2IyOGYyOTVhN2U1YzdkNGY1M2VmZWYyN2UyYjhlMCAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogICAgIHB1YmxpYzoKLSAgICAgICAgRnVuY3Rpb25Db25zdHJ1Y3Rv
cihFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBGdW5jdGlvblByb3Rv
dHlwZSopOworICAgICAgICBGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgRnVuY3Rpb25Qcm90b3R5cGUq
KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5jcHAKaW5kZXggMGZmZjFmMjNiNmVlMzAxNmVmODg1NGIzYjZhNTgxNjFi
M2ZmYWRjYy4uMTc2MjgxNjU2NmYxYTJkZjFjNzFiNzVhZWRhMDE1NzUzYzhjOWZjNCAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTM4LDE4ICsz
OCwxOCBAQCBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9T
dHJpbmcoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKUwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblByb3RvRnVuY0FwcGx5KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1
ZSwgY29uc3QgQXJnTGlzdCYpOwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blByb3RvRnVuY0NhbGwoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdM
aXN0Jik7CiAKLUZ1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUq
IGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQotICAgIDogSW50
ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5udWxsSWRlbnRpZmllcikKK0Z1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlvblBy
b3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5v
bk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5j
dGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLm51bGxJZGVudGlmaWVyKQogewogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDAp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAKLXZvaWQgRnVuY3Rpb25Q
cm90b3R5cGU6OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVy
ZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcioqIGNh
bGxGdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKiogYXBwbHlGdW5jdGlvbikKK3ZvaWQg
RnVuY3Rpb25Qcm90b3R5cGU6OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rp
b25TdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcioqIGNhbGxGdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb25XcmFwcGVyKiogYXBwbHlGdW5jdGlvbikKIHsKLSAgICBwdXREaXJlY3RGdW5jdGlv
bldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVy
KGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkudG9TdHJpbmcsIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcpLCBEb250RW51bSk7Ci0gICAg
KmFwcGx5RnVuY3Rpb24gPSBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBw
cm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmFwcGx5
LCBmdW5jdGlvblByb3RvRnVuY0FwcGx5KTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS50b1N0cmluZywgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyksIERvbnRFbnVtKTsK
KyAgICAqYXBwbHlGdW5jdGlvbiA9IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4
ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5hcHBseSwgZnVuY3Rpb25Qcm90b0Z1bmNBcHBseSk7CiAgICAgcHV0RGly
ZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCAqYXBwbHlGdW5jdGlvbiwgRG9udEVu
dW0pOwotICAgICpjYWxsRnVuY3Rpb24gPSBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBl
cihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmNhbGwsIGZ1bmN0aW9uUHJvdG9GdW5jQ2FsbCk7CisgICAgKmNhbGxGdW5jdGlvbiA9IG5l
dyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsLCBmdW5j
dGlvblByb3RvRnVuY0NhbGwpOwogICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24oZXhlYywgKmNhbGxGdW5jdGlvbiwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKaW5kZXggYWY3ODNmN2IyYjNiZTI2NzhkNzllZDI1
YmYyNzM3MTRjMDQ4OGNiZC4uNTY2MTE5NDJlOTBhNGYyOTk0ZTdiN2M1YzNmM2YyNjNmMWUwZTdm
YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMjks
OCArMjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBl
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHB1YmxpYzoKLSAgICAgICAgRnVuY3Rp
b25Qcm90b3R5cGUoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7Ci0g
ICAgICAgIHZvaWQgYWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSog
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcioqIGNhbGxG
dW5jdGlvbiwgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKiogYXBwbHlGdW5jdGlvbik7CisgICAgICAg
IEZ1bmN0aW9uUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBh
c3NSZWZQdHI8U3RydWN0dXJlPik7CisgICAgICAgIHZvaWQgYWRkRnVuY3Rpb25Qcm9wZXJ0aWVz
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlv
blN0cnVjdHVyZSwgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKiogY2FsbEZ1bmN0aW9uLCBOYXRpdmVG
dW5jdGlvbldyYXBwZXIqKiBhcHBseUZ1bmN0aW9uKTsKIAogICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKQogICAgICAgICB7
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5j
cHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5jcHAKaW5kZXgg
YzI2MDAyYmExNzFkY2Q2OWNjMjE3ZDU3MzA4NjQ3NWYyYTM1OTFhMi4uM2FkNDY0NDVkNTc2ZWU1
M2Y1YzRiMjc4ZDc3YjkyZWNjZGU3YWZhNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HbG9iYWxFdmFsRnVuY3Rpb24uY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2xvYmFsRXZhbEZ1bmN0aW9uLmNwcApAQCAtMzIsOCArMzIsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxFdmFsRnVuY3Rpb24pOwogCi1HbG9i
YWxFdmFsRnVuY3Rpb246Okdsb2JhbEV2YWxGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE5vbk51
bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBpbnQgbGVuLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgSlNHbG9iYWxPYmplY3QqIGNhY2hl
ZEdsb2JhbE9iamVjdCkKLSAgICA6IFByb3RvdHlwZUZ1bmN0aW9uKGV4ZWMsIHN0cnVjdHVyZSwg
bGVuLCBuYW1lLCBmdW5jdGlvbikKK0dsb2JhbEV2YWxGdW5jdGlvbjo6R2xvYmFsRXZhbEZ1bmN0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIGludCBsZW4sIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBKU0dsb2JhbE9iamVjdCogY2FjaGVk
R2xvYmFsT2JqZWN0KQorICAgIDogUHJvdG90eXBlRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIGxlbiwgbmFtZSwgZnVuY3Rpb24pCiAgICAgLCBtX2NhY2hlZEdsb2JhbE9i
amVjdChjYWNoZWRHbG9iYWxPYmplY3QpCiB7CiAgICAgQVNTRVJUX0FSRyhjYWNoZWRHbG9iYWxP
YmplY3QsIGNhY2hlZEdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HbG9i
YWxFdmFsRnVuY3Rpb24uaAppbmRleCBhMTRjZTRkMDQ0MmNhN2UxYTNhNTE1Y2MyYjU3M2MzZTg0
NzQ3NzNhLi5iODg5Y2E5OGE5YzU1OTFmNGM5OTBhMjllNDI5NjMwOTUyNjEzNWExIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXZhbEZ1bmN0aW9uLmgKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBHbG9iYWxFdmFsRnVuY3Rpb24gOiBwdWJs
aWMgUHJvdG90eXBlRnVuY3Rpb24gewogICAgIHB1YmxpYzoKLSAgICAgICAgR2xvYmFsRXZhbEZ1
bmN0aW9uKEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGludCBsZW4s
IGNvbnN0IElkZW50aWZpZXImLCBOYXRpdmVGdW5jdGlvbiwgSlNHbG9iYWxPYmplY3QqIGV4cGVj
dGVkVGhpc09iamVjdCk7CisgICAgICAgIEdsb2JhbEV2YWxGdW5jdGlvbihFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGludCBsZW4sIGNv
bnN0IElkZW50aWZpZXImLCBOYXRpdmVGdW5jdGlvbiwgSlNHbG9iYWxPYmplY3QqIGV4cGVjdGVk
VGhpc09iamVjdCk7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBjYWNoZWRHbG9iYWxPYmplY3Qo
KSBjb25zdCB7IHJldHVybiBtX2NhY2hlZEdsb2JhbE9iamVjdDsgfQogCiAgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBl
KSAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5j
cHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IDcx
N2I1ZmZjOWVjMTllOTBkNGY1MzJmYWQ2ZjI4N2E0MjZiMTNiODguLjhlODY0M2IwZjAxNGM3Y2E5
ZDQzOTAxNjRkOGRjY2UwNjExNDk5NmEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkludGVybmFsRnVu
Y3Rpb24uaCIKIAogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
QEAgLTM3LDggKzM4LDEzIEBAIGNvbnN0IENsYXNzSW5mbyogSW50ZXJuYWxGdW5jdGlvbjo6Y2xh
c3NJbmZvKCkgY29uc3QKICAgICByZXR1cm4gJmluZm87CiB9CiAKLUludGVybmFsRnVuY3Rpb246
OkludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOb25OdWxsUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKLSAgICA6
IEpTT2JqZWN0KHN0cnVjdHVyZSkKK0ludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24o
Tm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCisgICAgOiBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Qoc3RydWN0dXJlKQoreworfQorCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRl
cm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpCisgICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpCiB7CiAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEtPnByb3BlcnR5
TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5h
bWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCBkMTliODJiMzhhYWUy
MzMyY2Y4NjQyMGFhN2I1YTAzMDhmMzA5OTE4Li40MDFmMTdiYjQwMDM4MTc3ZGNlMTkwOTY3NjAz
YmQ0ODBmNGYyMTcxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
aApAQCAtMjQsMTQgKzI0LDE0IEBACiAjaWZuZGVmIEludGVybmFsRnVuY3Rpb25faAogI2RlZmlu
ZSBJbnRlcm5hbEZ1bmN0aW9uX2gKIAotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAi
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlOwogCi0gICAgY2xh
c3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU09iamVjdCB7CisgICAgY2xhc3MgSW50ZXJu
YWxGdW5jdGlvbiA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgewogICAgIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0OyAK
ICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIGluZm87CkBAIC00
OCw4ICs0OCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEltcGxlbWVudHNIYXNJbnN0YW5j
ZSB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgICAgICBJbnRlcm5hbEZ1bmN0aW9u
KE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKSA6IEpTT2JqZWN0KHN0cnVj
dHVyZSkgeyB9Ci0gICAgICAgIEludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiwgTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgY29uc3QgSWRlbnRpZmllciYpOworICAgICAgICAvLyBP
bmx5IHVzZWQgdG8gYWxsb3cgdXMgdG8gZGV0ZXJtaW5lIHRoZSBKU0Z1bmN0aW9uIHZwdHIKKyAg
ICAgICAgSW50ZXJuYWxGdW5jdGlvbihOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSk7CisKKyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbERhdGEqLCBKU0dsb2Jh
bE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGNvbnN0IElkZW50aWZpZXIm
KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
Q2FsbERhdGEmKSA9IDA7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCBhZTVhY2EzYmY0MjJl
Y2NkZTA1MTZmY2U3M2ZkYzQ0Y2Y2NjY4M2Y2Li5jMDgzODI1ZDgwMGE2YzA5Mjc5NzUzODE0ODcx
NGQ2Yjk5YjgyZDQ3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTIwNywxMiArMjA3LDE2
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIENhbGxUeXBlIEpTVmFsdWU6OmdldENh
bGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBpc0NlbGwo
KSA/IGFzQ2VsbCgpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgOiBDYWxsVHlwZU5vbmU7CisgICAg
ICAgIENhbGxUeXBlIHJlc3VsdCA9IGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldENhbGxEYXRhKGNh
bGxEYXRhKSA6IENhbGxUeXBlTm9uZTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdCA9PSBDYWxsVHlw
ZU5vbmUgfHwgaXNWYWxpZENhbGxlZSgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAKICAgICBpbmxpbmUgQ29uc3RydWN0VHlwZSBKU1ZhbHVlOjpnZXRDb25zdHJ1Y3REYXRhKENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+Z2V0Q29uc3RydWN0RGF0YShjb25zdHJ1Y3REYXRhKSA6IENvbnN0cnVj
dFR5cGVOb25lOworICAgICAgICBDb25zdHJ1Y3RUeXBlIHJlc3VsdCA9IGlzQ2VsbCgpID8gYXND
ZWxsKCktPmdldENvbnN0cnVjdERhdGEoY29uc3RydWN0RGF0YSkgOiBDb25zdHJ1Y3RUeXBlTm9u
ZTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdCA9PSBDb25zdHJ1Y3RUeXBlTm9uZSB8fCBpc1ZhbGlk
Q2FsbGVlKCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIEFMV0FZU19J
TkxJTkUgYm9vbCBKU1ZhbHVlOjpnZXRVSW50MzIodWludDMyX3QmIHYpIGNvbnN0CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBhZTFkZDdhYjQ3OGY4MTFiZjU0ZjM2MThj
MGJmODAxMTFlYWE3YmExLi45ZDZhYzhlM2VhOTZlYWM5YmY3ZmQzMzNkYmVmYjAzMzAzY2UxMTI3
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTU3LDEyICs1NywxMiBA
QCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3Ry
dWN0dXJlKQogewogfQogCi1KU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
Tm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIFBhc3NSZWZQdHI8TmF0aXZlRXhlY3V0YWJsZT4gdGh1bmspCi0g
ICAgOiBCYXNlKHN0cnVjdHVyZSkKK0pTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgUGFz
c1JlZlB0cjxOYXRpdmVFeGVjdXRhYmxlPiB0aHVuaykKKyAgICA6IEJhc2UoZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUpCiAjaWYgRU5BQkxFKEpJVCkKICAgICAsIG1fZXhlY3V0YWJsZSh0aHVuaykK
ICNlbmRpZgotICAgICwgbV9zY29wZUNoYWluKE5vU2NvcGVDaGFpbigpKQorICAgICwgbV9zY29w
ZUNoYWluKGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewogICAgIHB1dERpcmVj
dChleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmcoZXhlYywg
bmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7CiAjaWYgRU5BQkxFKEpJVCkKQEAgLTc0LDEyICs3NCwxMiBAQCBKU0Z1
bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsCiAjZW5kaWYKIH0KIAotSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBp
bnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQot
ICAgIDogQmFzZShzdHJ1Y3R1cmUpCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmMpCisgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQog
I2lmIEVOQUJMRShKSVQpCiAgICAgLCBtX2V4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLmdl
dEhvc3RGdW5jdGlvbihmdW5jKSkKICNlbmRpZgotICAgICwgbV9zY29wZUNoYWluKE5vU2NvcGVD
aGFpbigpKQorICAgICwgbV9zY29wZUNoYWluKGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFp
bigpKQogewogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+
bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAjaWYgRU5BQkxFKEpJVCkKQEAg
LTkyLDcgKzkyLDcgQEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE5v
bk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLAogfQogCiBKU0Z1bmN0aW9uOjpK
U0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8RnVuY3Rpb25FeGVj
dXRhYmxlPiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCi0gICAg
OiBCYXNlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSkK
KyAgICA6IEJhc2Uoc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdCwgc2NvcGVDaGFpbk5vZGUt
Pmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSkKICAgICAsIG1fZXhlY3V0YWJsZShl
eGVjdXRhYmxlKQogICAgICwgbV9zY29wZUNoYWluKHNjb3BlQ2hhaW5Ob2RlKQogewpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBkNDdkMjdjM2UyNGZmYmQwNGZjMjM5NjA1MzU0
ZTI0MjFkNmNmYzQ3Li5hY2RmZTBkNzlkOGRlMGM2N2QzZTFjOWRmNDNjNTc3ZGE3OWQ2ZGY5IDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMjQsNyArMjQsNyBAQAogI2lmbmRl
ZiBKU0Z1bmN0aW9uX2gKICNkZWZpbmUgSlNGdW5jdGlvbl9oCiAKLSNpbmNsdWRlICJKU09iamVj
dC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMzUsMTUgKzM1LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwogICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBjbGFzcyBK
U0Z1bmN0aW9uIDogcHVibGljIEpTT2JqZWN0IHsKKyAgICBjbGFzcyBKU0Z1bmN0aW9uIDogcHVi
bGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKSVQ7
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAKLSAgICAgICAgdHlwZWRlZiBK
U09iamVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBC
YXNlOwogCiAgICAgcHVibGljOgotICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIE5vbk51
bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBO
YXRpdmVGdW5jdGlvbik7Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgTm9uTnVsbFBh
c3NSZWZQdHI8U3RydWN0dXJlPiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NS
ZWZQdHI8TmF0aXZlRXhlY3V0YWJsZT4pOworICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgaW50IGxlbmd0
aCwgY29uc3QgSWRlbnRpZmllciYsIE5hdGl2ZUZ1bmN0aW9uKTsKKyAgICAgICAgSlNGdW5jdGlv
bihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4sIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPE5hdGl2ZUV4ZWN1
dGFibGU+KTsKICAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0
cjxGdW5jdGlvbkV4ZWN1dGFibGU+LCBTY29wZUNoYWluTm9kZSopOwogICAgICAgICB2aXJ0dWFs
IH5KU0Z1bmN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKaW5kZXggN2ZkNDkxYWUwNjU0ZjM3YjM2N2E0ZDNkNjU1ODYyZDVjODc2MmFmZC4uYjUwNjU4
YjM2OGM2YTQwNTQyNTcyNTEwNjMzN2E4MzFmN2QwNWEwZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTIwMywxNCArMjAzLDE0IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90eXBlKQogCiAgICAgLy8gUHJvdG90eXBlcwog
Ci0gICAgZCgpLT5mdW5jdGlvblByb3RvdHlwZSA9IG5ldyAoZXhlYykgRnVuY3Rpb25Qcm90b3R5
cGUoZXhlYywgRnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpOyAv
LyBUaGUgcmVhbCBwcm90b3R5cGUgd2lsbCBiZSBzZXQgb25jZSBPYmplY3RQcm90b3R5cGUgaXMg
Y3JlYXRlZC4KKyAgICBkKCktPmZ1bmN0aW9uUHJvdG90eXBlID0gbmV3IChleGVjKSBGdW5jdGlv
blByb3RvdHlwZShleGVjLCB0aGlzLCBGdW5jdGlvblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSk7IC8vIFRoZSByZWFsIHByb3RvdHlwZSB3aWxsIGJlIHNldCBvbmNlIE9iamVj
dFByb3RvdHlwZSBpcyBjcmVhdGVkLgogICAgIGQoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUgPSBQcm90b3R5cGVGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVuY3Rpb25Qcm90
b3R5cGUpOwogICAgIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlciogY2FsbEZ1bmN0aW9uID0gMDsKICAg
ICBOYXRpdmVGdW5jdGlvbldyYXBwZXIqIGFwcGx5RnVuY3Rpb24gPSAwOwotICAgIGQoKS0+ZnVu
Y3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCBkKCktPnByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5jdGlvbik7
CisgICAgZCgpLT5mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4ZWMs
IHRoaXMsIGQoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksICZjYWxsRnVuY3Rp
b24sICZhcHBseUZ1bmN0aW9uKTsKICAgICBkKCktPmNhbGxGdW5jdGlvbiA9IGNhbGxGdW5jdGlv
bjsKICAgICBkKCktPmFwcGx5RnVuY3Rpb24gPSBhcHBseUZ1bmN0aW9uOwotICAgIGQoKS0+b2Jq
ZWN0UHJvdG90eXBlID0gbmV3IChleGVjKSBPYmplY3RQcm90b3R5cGUoZXhlYywgT2JqZWN0UHJv
dG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlLmdldCgpKTsKKyAgICBkKCktPm9iamVjdFByb3RvdHlwZSA9IG5ldyAoZXhlYykg
T2JqZWN0UHJvdG90eXBlKGV4ZWMsIHRoaXMsIE9iamVjdFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKGpzTnVsbCgpKSwgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7CiAg
ICAgZCgpLT5mdW5jdGlvblByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldFByb3RvdHlwZVdpdGhv
dXRUcmFuc2l0aW9uKGQoKS0+b2JqZWN0UHJvdG90eXBlKTsKIAogICAgIGQoKS0+ZW1wdHlPYmpl
Y3RTdHJ1Y3R1cmUgPSBkKCktPm9iamVjdFByb3RvdHlwZS0+aW5oZXJpdG9ySUQoKTsKQEAgLTIx
OSw2MyArMjE5LDYzIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIGQoKS0+Y2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tGdW5j
dGlvbjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVuY3Rpb25Qcm90b3R5cGUpOwogICAgIGQoKS0+
YXJndW1lbnRzU3RydWN0dXJlID0gQXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmpl
Y3RQcm90b3R5cGUpOwogICAgIGQoKS0+Y2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZSA9IEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+b2JqZWN0UHJvdG90eXBl
KTsKLSAgICBkKCktPmNhbGxiYWNrT2JqZWN0U3RydWN0dXJlID0gSlNDYWxsYmFja09iamVjdDxK
U09iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShkKCktPm9iamVjdFByb3RvdHlwZSk7CisgICAgZCgp
LT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0Pjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+b2JqZWN0UHJvdG90eXBlKTsKIAot
ICAgIGQoKS0+YXJyYXlQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIEFycmF5UHJvdG90eXBlKEFycmF5
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQcm90b3R5cGUpKTsKKyAgICBk
KCktPmFycmF5UHJvdG90eXBlID0gbmV3IChleGVjKSBBcnJheVByb3RvdHlwZSh0aGlzLCBBcnJh
eVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+b2JqZWN0UHJvdG90eXBlKSk7CiAgICAg
ZCgpLT5hcnJheVN0cnVjdHVyZSA9IEpTQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShkKCktPmFycmF5
UHJvdG90eXBlKTsKICAgICBkKCktPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSA9IFJlZ0V4
cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+YXJyYXlQcm90b3R5cGUpOwogCi0g
ICAgZCgpLT5zdHJpbmdQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIFN0cmluZ1Byb3RvdHlwZShleGVj
LCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShkKCktPm9iamVjdFByb3RvdHlwZSkp
OworICAgIGQoKS0+c3RyaW5nUHJvdG90eXBlID0gbmV3IChleGVjKSBTdHJpbmdQcm90b3R5cGUo
ZXhlYywgdGhpcywgU3RyaW5nUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQ
cm90b3R5cGUpKTsKICAgICBkKCktPnN0cmluZ09iamVjdFN0cnVjdHVyZSA9IFN0cmluZ09iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+c3RyaW5nUHJvdG90eXBlKTsKIAotICAgIGQoKS0+Ym9v
bGVhblByb3RvdHlwZSA9IG5ldyAoZXhlYykgQm9vbGVhblByb3RvdHlwZShleGVjLCBCb29sZWFu
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQcm90b3R5cGUpLCBkKCktPnBy
b3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBkKCktPmJvb2xlYW5Qcm90b3R5
cGUgPSBuZXcgKGV4ZWMpIEJvb2xlYW5Qcm90b3R5cGUoZXhlYywgdGhpcywgQm9vbGVhblByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+b2JqZWN0UHJvdG90eXBlKSwgZCgpLT5wcm90b3R5
cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7CiAgICAgZCgpLT5ib29sZWFuT2JqZWN0U3RydWN0
dXJlID0gQm9vbGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+Ym9vbGVhblByb3RvdHlw
ZSk7CiAKLSAgICBkKCktPm51bWJlclByb3RvdHlwZSA9IG5ldyAoZXhlYykgTnVtYmVyUHJvdG90
eXBlKGV4ZWMsIE51bWJlclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+b2JqZWN0UHJv
dG90eXBlKSwgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7CisgICAgZCgp
LT5udW1iZXJQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlz
LCBOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShkKCktPm9iamVjdFByb3RvdHlwZSks
IGQoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwogICAgIGQoKS0+bnVtYmVy
T2JqZWN0U3RydWN0dXJlID0gTnVtYmVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5udW1i
ZXJQcm90b3R5cGUpOwogCi0gICAgZCgpLT5kYXRlUHJvdG90eXBlID0gbmV3IChleGVjKSBEYXRl
UHJvdG90eXBlKGV4ZWMsIERhdGVQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShkKCktPm9iamVj
dFByb3RvdHlwZSkpOworICAgIGQoKS0+ZGF0ZVByb3RvdHlwZSA9IG5ldyAoZXhlYykgRGF0ZVBy
b3RvdHlwZShleGVjLCB0aGlzLCBEYXRlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5v
YmplY3RQcm90b3R5cGUpKTsKICAgICBkKCktPmRhdGVTdHJ1Y3R1cmUgPSBEYXRlSW5zdGFuY2U6
OmNyZWF0ZVN0cnVjdHVyZShkKCktPmRhdGVQcm90b3R5cGUpOwogCi0gICAgZCgpLT5yZWdFeHBQ
cm90b3R5cGUgPSBuZXcgKGV4ZWMpIFJlZ0V4cFByb3RvdHlwZShleGVjLCBSZWdFeHBQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShkKCktPm9iamVjdFByb3RvdHlwZSksIGQoKS0+cHJvdG90eXBl
RnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOworICAgIGQoKS0+cmVnRXhwUHJvdG90eXBlID0gbmV3
IChleGVjKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQcm90b3R5cGUpLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlLmdldCgpKTsKICAgICBkKCktPnJlZ0V4cFN0cnVjdHVyZSA9IFJlZ0V4cE9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+cmVnRXhwUHJvdG90eXBlKTsKIAogICAgIGQoKS0+bWV0
aG9kQ2FsbER1bW15ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYyk7CiAKLSAgICBFcnJvclBy
b3RvdHlwZSogZXJyb3JQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIEVycm9yUHJvdG90eXBlKGV4ZWMs
IEVycm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQcm90b3R5cGUpLCBk
KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBFcnJvclByb3RvdHlw
ZSogZXJyb3JQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIEVycm9yUHJvdG90eXBlKGV4ZWMsIHRoaXMs
IEVycm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQcm90b3R5cGUpLCBk
KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKICAgICBkKCktPmVycm9yU3Ry
dWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGVycm9yUHJvdG90eXBlKTsK
IAogICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlID0g
TmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShlcnJvclByb3RvdHlwZSk7CiAK
LSAgICBOYXRpdmVFcnJvclByb3RvdHlwZSogZXZhbEVycm9yUHJvdG90eXBlID0gbmV3IChleGVj
KSBOYXRpdmVFcnJvclByb3RvdHlwZShleGVjLCBuYXRpdmVFcnJvclByb3RvdHlwZVN0cnVjdHVy
ZSwgIkV2YWxFcnJvciIsICJFdmFsRXJyb3IiKTsKLSAgICBOYXRpdmVFcnJvclByb3RvdHlwZSog
cmFuZ2VFcnJvclByb3RvdHlwZSA9IG5ldyAoZXhlYykgTmF0aXZlRXJyb3JQcm90b3R5cGUoZXhl
YywgbmF0aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5nZUVycm9yIiwgIlJhbmdlRXJy
b3IiKTsKLSAgICBOYXRpdmVFcnJvclByb3RvdHlwZSogcmVmZXJlbmNlRXJyb3JQcm90b3R5cGUg
PSBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yUHJvdG90eXBlKGV4ZWMsIG5hdGl2ZUVycm9yUHJvdG90
eXBlU3RydWN0dXJlLCAiUmVmZXJlbmNlRXJyb3IiLCAiUmVmZXJlbmNlRXJyb3IiKTsKLSAgICBO
YXRpdmVFcnJvclByb3RvdHlwZSogc3ludGF4RXJyb3JQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIE5h
dGl2ZUVycm9yUHJvdG90eXBlKGV4ZWMsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAi
U3ludGF4RXJyb3IiLCAiU3ludGF4RXJyb3IiKTsKLSAgICBOYXRpdmVFcnJvclByb3RvdHlwZSog
dHlwZUVycm9yUHJvdG90eXBlID0gbmV3IChleGVjKSBOYXRpdmVFcnJvclByb3RvdHlwZShleGVj
LCBuYXRpdmVFcnJvclByb3RvdHlwZVN0cnVjdHVyZSwgIlR5cGVFcnJvciIsICJUeXBlRXJyb3Ii
KTsKLSAgICBOYXRpdmVFcnJvclByb3RvdHlwZSogVVJJRXJyb3JQcm90b3R5cGUgPSBuZXcgKGV4
ZWMpIE5hdGl2ZUVycm9yUHJvdG90eXBlKGV4ZWMsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0
dXJlLCAiVVJJRXJyb3IiLCAiVVJJRXJyb3IiKTsKKyAgICBOYXRpdmVFcnJvclByb3RvdHlwZSog
ZXZhbEVycm9yUHJvdG90eXBlID0gbmV3IChleGVjKSBOYXRpdmVFcnJvclByb3RvdHlwZShleGVj
LCB0aGlzLCBuYXRpdmVFcnJvclByb3RvdHlwZVN0cnVjdHVyZSwgIkV2YWxFcnJvciIsICJFdmFs
RXJyb3IiKTsKKyAgICBOYXRpdmVFcnJvclByb3RvdHlwZSogcmFuZ2VFcnJvclByb3RvdHlwZSA9
IG5ldyAoZXhlYykgTmF0aXZlRXJyb3JQcm90b3R5cGUoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JQ
cm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5nZUVycm9yIiwgIlJhbmdlRXJyb3IiKTsKKyAgICBOYXRp
dmVFcnJvclByb3RvdHlwZSogcmVmZXJlbmNlRXJyb3JQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIE5h
dGl2ZUVycm9yUHJvdG90eXBlKGV4ZWMsIHRoaXMsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0
dXJlLCAiUmVmZXJlbmNlRXJyb3IiLCAiUmVmZXJlbmNlRXJyb3IiKTsKKyAgICBOYXRpdmVFcnJv
clByb3RvdHlwZSogc3ludGF4RXJyb3JQcm90b3R5cGUgPSBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9y
UHJvdG90eXBlKGV4ZWMsIHRoaXMsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiU3lu
dGF4RXJyb3IiLCAiU3ludGF4RXJyb3IiKTsKKyAgICBOYXRpdmVFcnJvclByb3RvdHlwZSogdHlw
ZUVycm9yUHJvdG90eXBlID0gbmV3IChleGVjKSBOYXRpdmVFcnJvclByb3RvdHlwZShleGVjLCB0
aGlzLCBuYXRpdmVFcnJvclByb3RvdHlwZVN0cnVjdHVyZSwgIlR5cGVFcnJvciIsICJUeXBlRXJy
b3IiKTsKKyAgICBOYXRpdmVFcnJvclByb3RvdHlwZSogVVJJRXJyb3JQcm90b3R5cGUgPSBuZXcg
KGV4ZWMpIE5hdGl2ZUVycm9yUHJvdG90eXBlKGV4ZWMsIHRoaXMsIG5hdGl2ZUVycm9yUHJvdG90
eXBlU3RydWN0dXJlLCAiVVJJRXJyb3IiLCAiVVJJRXJyb3IiKTsKIAogICAgIC8vIENvbnN0cnVj
dG9ycwogCi0gICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgT2JqZWN0
Q29uc3RydWN0b3IoZXhlYywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShkKCkt
PmZ1bmN0aW9uUHJvdG90eXBlKSwgZCgpLT5vYmplY3RQcm90b3R5cGUsIGQoKS0+cHJvdG90eXBl
RnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwotICAgIEpTQ2VsbCogZnVuY3Rpb25Db25zdHJ1Y3Rv
ciA9IG5ldyAoZXhlYykgRnVuY3Rpb25Db25zdHJ1Y3RvcihleGVjLCBGdW5jdGlvbkNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIGQoKS0+ZnVuY3Rp
b25Qcm90b3R5cGUpOwotICAgIEpTQ2VsbCogYXJyYXlDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykg
QXJyYXlDb25zdHJ1Y3RvcihleGVjLCBBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
ZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIGQoKS0+YXJyYXlQcm90b3R5cGUsIGQoKS0+cHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwotICAgIEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0
b3IgPSBuZXcgKGV4ZWMpIFN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIFN0cmluZ0NvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIGQoKS0+cHJvdG90eXBl
RnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIGQoKS0+c3RyaW5nUHJvdG90eXBlKTsKLSAgICBKU0Nl
bGwqIGJvb2xlYW5Db25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgQm9vbGVhbkNvbnN0cnVjdG9yKGV4
ZWMsIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVuY3Rpb25Qcm90
b3R5cGUpLCBkKCktPmJvb2xlYW5Qcm90b3R5cGUpOwotICAgIEpTQ2VsbCogbnVtYmVyQ29uc3Ry
dWN0b3IgPSBuZXcgKGV4ZWMpIE51bWJlckNvbnN0cnVjdG9yKGV4ZWMsIE51bWJlckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIGQoKS0+bnVtYmVy
UHJvdG90eXBlKTsKLSAgICBKU0NlbGwqIGRhdGVDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgRGF0
ZUNvbnN0cnVjdG9yKGV4ZWMsIERhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+
ZnVuY3Rpb25Qcm90b3R5cGUpLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgp
LCBkKCktPmRhdGVQcm90b3R5cGUpOworICAgIEpTQ2VsbCogb2JqZWN0Q29uc3RydWN0b3IgPSBu
ZXcgKGV4ZWMpIE9iamVjdENvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIE9iamVjdENvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIGQoKS0+b2JqZWN0UHJv
dG90eXBlLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBKU0Nl
bGwqIGZ1bmN0aW9uQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIEZ1bmN0aW9uQ29uc3RydWN0b3Io
ZXhlYywgdGhpcywgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVu
Y3Rpb25Qcm90b3R5cGUpLCBkKCktPmZ1bmN0aW9uUHJvdG90eXBlKTsKKyAgICBKU0NlbGwqIGFy
cmF5Q29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhpcywg
QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVuY3Rpb25Qcm90b3R5cGUp
LCBkKCktPmFycmF5UHJvdG90eXBlLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdl
dCgpKTsKKyAgICBKU0NlbGwqIHN0cmluZ0NvbnN0cnVjdG9yID0gbmV3IChleGVjKSBTdHJpbmdD
b25zdHJ1Y3RvcihleGVjLCB0aGlzLCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KGQoKS0+ZnVuY3Rpb25Qcm90b3R5cGUpLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJl
LmdldCgpLCBkKCktPnN0cmluZ1Byb3RvdHlwZSk7CisgICAgSlNDZWxsKiBib29sZWFuQ29uc3Ry
dWN0b3IgPSBuZXcgKGV4ZWMpIEJvb2xlYW5Db25zdHJ1Y3RvcihleGVjLCB0aGlzLCBCb29sZWFu
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShkKCktPmZ1bmN0aW9uUHJvdG90eXBlKSwgZCgp
LT5ib29sZWFuUHJvdG90eXBlKTsKKyAgICBKU0NlbGwqIG51bWJlckNvbnN0cnVjdG9yID0gbmV3
IChleGVjKSBOdW1iZXJDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBOdW1iZXJDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVuY3Rpb25Qcm90b3R5cGUpLCBkKCktPm51bWJlclByb3Rv
dHlwZSk7CisgICAgSlNDZWxsKiBkYXRlQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIERhdGVDb25z
dHJ1Y3RvcihleGVjLCB0aGlzLCBEYXRlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShkKCkt
PmZ1bmN0aW9uUHJvdG90eXBlKSwgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQo
KSwgZCgpLT5kYXRlUHJvdG90eXBlKTsKIAotICAgIGQoKS0+cmVnRXhwQ29uc3RydWN0b3IgPSBu
ZXcgKGV4ZWMpIFJlZ0V4cENvbnN0cnVjdG9yKGV4ZWMsIFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIGQoKS0+cmVnRXhwUHJvdG90eXBl
KTsKKyAgICBkKCktPnJlZ0V4cENvbnN0cnVjdG9yID0gbmV3IChleGVjKSBSZWdFeHBDb25zdHJ1
Y3RvcihleGVjLCB0aGlzLCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+
ZnVuY3Rpb25Qcm90b3R5cGUpLCBkKCktPnJlZ0V4cFByb3RvdHlwZSk7CiAKLSAgICBkKCktPmVy
cm9yQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIEVycm9yQ29uc3RydWN0b3IoZXhlYywgRXJyb3JD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGQoKS0+ZnVuY3Rpb25Qcm90b3R5cGUpLCBlcnJv
clByb3RvdHlwZSk7CisgICAgZCgpLT5lcnJvckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBFcnJv
ckNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShkKCktPmZ1bmN0aW9uUHJvdG90eXBlKSwgZXJyb3JQcm90b3R5cGUpOwogCiAgICAgUmVmUHRy
PFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JTdHJ1Y3R1cmUgPSBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSk7CiAKLSAgICBkKCktPmV2
YWxFcnJvckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKGV4
ZWMsIG5hdGl2ZUVycm9yU3RydWN0dXJlLCBldmFsRXJyb3JQcm90b3R5cGUpOwotICAgIGQoKS0+
cmFuZ2VFcnJvckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
KGV4ZWMsIG5hdGl2ZUVycm9yU3RydWN0dXJlLCByYW5nZUVycm9yUHJvdG90eXBlKTsKLSAgICBk
KCktPnJlZmVyZW5jZUVycm9yQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3IoZXhlYywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUsIHJlZmVyZW5jZUVycm9yUHJvdG90
eXBlKTsKLSAgICBkKCktPnN5bnRheEVycm9yQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIE5hdGl2
ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUsIHN5bnRheEVycm9y
UHJvdG90eXBlKTsKLSAgICBkKCktPnR5cGVFcnJvckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBO
YXRpdmVFcnJvckNvbnN0cnVjdG9yKGV4ZWMsIG5hdGl2ZUVycm9yU3RydWN0dXJlLCB0eXBlRXJy
b3JQcm90b3R5cGUpOwotICAgIGQoKS0+VVJJRXJyb3JDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykg
TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCBuYXRpdmVFcnJvclN0cnVjdHVyZSwgVVJJRXJy
b3JQcm90b3R5cGUpOworICAgIGQoKS0+ZXZhbEVycm9yQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMp
IE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUs
IGV2YWxFcnJvclByb3RvdHlwZSk7CisgICAgZCgpLT5yYW5nZUVycm9yQ29uc3RydWN0b3IgPSBu
ZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JT
dHJ1Y3R1cmUsIHJhbmdlRXJyb3JQcm90b3R5cGUpOworICAgIGQoKS0+cmVmZXJlbmNlRXJyb3JD
b25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlz
LCBuYXRpdmVFcnJvclN0cnVjdHVyZSwgcmVmZXJlbmNlRXJyb3JQcm90b3R5cGUpOworICAgIGQo
KS0+c3ludGF4RXJyb3JDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcihleGVjLCB0aGlzLCBuYXRpdmVFcnJvclN0cnVjdHVyZSwgc3ludGF4RXJyb3JQcm90b3R5
cGUpOworICAgIGQoKS0+dHlwZUVycm9yQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUsIHR5cGVFcnJv
clByb3RvdHlwZSk7CisgICAgZCgpLT5VUklFcnJvckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBO
YXRpdmVFcnJvckNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIG5hdGl2ZUVycm9yU3RydWN0dXJlLCBV
UklFcnJvclByb3RvdHlwZSk7CiAKICAgICBkKCktPm9iamVjdFByb3RvdHlwZS0+cHV0RGlyZWN0
RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0
b3IsIG9iamVjdENvbnN0cnVjdG9yLCBEb250RW51bSk7CiAgICAgZCgpLT5mdW5jdGlvblByb3Rv
dHlwZS0+cHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY29uc3RydWN0b3IsIGZ1bmN0aW9uQ29uc3RydWN0b3IsIERvbnRFbnVtKTsKQEAgLTMx
NiwzMSArMzE2LDMxIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90
eXBlKQogCiAgICAgLy8gU2V0IGdsb2JhbCB2YWx1ZXMuCiAgICAgR2xvYmFsUHJvcGVydHlJbmZv
IHN0YXRpY0dsb2JhbHNbXSA9IHsKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZp
ZXIoZXhlYywgIk1hdGgiKSwgbmV3IChleGVjKSBNYXRoT2JqZWN0KGV4ZWMsIE1hdGhPYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShkKCktPm9iamVjdFByb3RvdHlwZSkpLCBEb250RW51bSB8IERvbnRE
ZWxldGUpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihleGVjLCAiTWF0
aCIpLCBuZXcgKGV4ZWMpIE1hdGhPYmplY3QoZXhlYywgdGhpcywgTWF0aE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGQoKS0+b2JqZWN0UHJvdG90eXBlKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSks
CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJOYU4iKSwganNO
YU4oZXhlYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKElkZW50aWZpZXIoZXhlYywgIkluZmluaXR5IiksIGpzTnVtYmVyKGV4
ZWMsIEluZiksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKElkZW50aWZpZXIoZXhlYywgInVuZGVmaW5lZCIpLCBqc1VuZGVmaW5l
ZCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJKU09OIiksIG5ldyAoZXhlYykgSlNPTk9iamVj
dChKU09OT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZCgpLT5vYmplY3RQcm90b3R5cGUpKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlKQorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmll
cihleGVjLCAiSlNPTiIpLCBuZXcgKGV4ZWMpIEpTT05PYmplY3QodGhpcywgSlNPTk9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKGQoKS0+b2JqZWN0UHJvdG90eXBlKSksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSkKICAgICB9OwogCiAgICAgYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBzaXpl
b2Yoc3RhdGljR2xvYmFscykgLyBzaXplb2YoR2xvYmFsUHJvcGVydHlJbmZvKSk7CiAKICAgICAv
LyBTZXQgZ2xvYmFsIGZ1bmN0aW9ucy4KIAotICAgIGQoKS0+ZXZhbEZ1bmN0aW9uID0gbmV3IChl
eGVjKSBHbG9iYWxFdmFsRnVuY3Rpb24oZXhlYywgR2xvYmFsRXZhbEZ1bmN0aW9uOjpjcmVhdGVT
dHJ1Y3R1cmUoZCgpLT5mdW5jdGlvblByb3RvdHlwZSksIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5ldmFsLCBnbG9iYWxGdW5jRXZhbCwgdGhpcyk7CisgICAgZCgpLT5ldmFsRnVuY3Rpb24gPSBu
ZXcgKGV4ZWMpIEdsb2JhbEV2YWxGdW5jdGlvbihleGVjLCB0aGlzLCBHbG9iYWxFdmFsRnVuY3Rp
b246OmNyZWF0ZVN0cnVjdHVyZShkKCktPmZ1bmN0aW9uUHJvdG90eXBlKSwgMSwgZXhlYy0+cHJv
cGVydHlOYW1lcygpLmV2YWwsIGdsb2JhbEZ1bmNFdmFsLCB0aGlzKTsKICAgICBwdXREaXJlY3RG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIGQoKS0+ZXZhbEZ1bmN0aW9uLCBEb250RW51
bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4
ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3Ry
dWN0dXJlLmdldCgpLCAyLCBJZGVudGlmaWVyKGV4ZWMsICJwYXJzZUludCIpLCBnbG9iYWxGdW5j
UGFyc2VJbnQpLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNp
dGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBkKCktPnBy
b3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJwYXJz
ZUZsb2F0IiksIGdsb2JhbEZ1bmNQYXJzZUZsb2F0KSwgRG9udEVudW0pOwotICAgIHB1dERpcmVj
dEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlv
bldyYXBwZXIoZXhlYywgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgMSwg
SWRlbnRpZmllcihleGVjLCAiaXNOYU4iKSwgZ2xvYmFsRnVuY0lzTmFOKSwgRG9udEVudW0pOwot
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBO
YXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVy
ZS5nZXQoKSwgMSwgSWRlbnRpZmllcihleGVjLCAiaXNGaW5pdGUiKSwgZ2xvYmFsRnVuY0lzRmlu
aXRlKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
ZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZCgpLT5wcm90b3R5
cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgMSwgSWRlbnRpZmllcihleGVjLCAiZXNjYXBlIiks
IGdsb2JhbEZ1bmNFc2NhcGUpLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVj
LCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4
ZWMsICJ1bmVzY2FwZSIpLCBnbG9iYWxGdW5jVW5lc2NhcGUpLCBEb250RW51bSk7Ci0gICAgcHV0
RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlcihleGVjLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgp
LCAxLCBJZGVudGlmaWVyKGV4ZWMsICJkZWNvZGVVUkkiKSwgZ2xvYmFsRnVuY0RlY29kZVVSSSks
IERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMs
IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGQoKS0+cHJvdG90eXBlRnVu
Y3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImRlY29kZVVSSUNvbXBv
bmVudCIpLCBnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50KSwgRG9udEVudW0pOwotICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQo
KSwgMSwgSWRlbnRpZmllcihleGVjLCAiZW5jb2RlVVJJIiksIGdsb2JhbEZ1bmNFbmNvZGVVUkkp
LCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVj
LCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBkKCktPnByb3RvdHlwZUZ1
bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJlbmNvZGVVUklDb21w
b25lbnQiKSwgZ2xvYmFsRnVuY0VuY29kZVVSSUNvbXBvbmVudCksIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZl
RnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHRoaXMsIGQoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCksIDIsIElkZW50aWZpZXIoZXhlYywgInBhcnNlSW50IiksIGdsb2JhbEZ1bmNQYXJz
ZUludCksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHRoaXMsIGQoKS0+
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgInBh
cnNlRmxvYXQiKSwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQpLCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0
aW9uV3JhcHBlcihleGVjLCB0aGlzLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdl
dCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJpc05hTiIpLCBnbG9iYWxGdW5jSXNOYU4pLCBEb250
RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcg
KGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCB0aGlzLCBkKCktPnByb3RvdHlwZUZ1
bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJpc0Zpbml0ZSIpLCBn
bG9iYWxGdW5jSXNGaW5pdGUpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVj
LCB0aGlzLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlm
aWVyKGV4ZWMsICJlc2NhcGUiKSwgZ2xvYmFsRnVuY0VzY2FwZSksIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZl
RnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHRoaXMsIGQoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgInVuZXNjYXBlIiksIGdsb2JhbEZ1bmNVbmVz
Y2FwZSksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHRoaXMsIGQoKS0+
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImRl
Y29kZVVSSSIpLCBnbG9iYWxGdW5jRGVjb2RlVVJJKSwgRG9udEVudW0pOworICAgIHB1dERpcmVj
dEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlv
bldyYXBwZXIoZXhlYywgdGhpcywgZCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZS5nZXQo
KSwgMSwgSWRlbnRpZmllcihleGVjLCAiZGVjb2RlVVJJQ29tcG9uZW50IiksIGdsb2JhbEZ1bmNE
ZWNvZGVVUklDb21wb25lbnQpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVj
LCB0aGlzLCBkKCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlm
aWVyKGV4ZWMsICJlbmNvZGVVUkkiKSwgZ2xvYmFsRnVuY0VuY29kZVVSSSksIERvbnRFbnVtKTsK
KyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykg
TmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHRoaXMsIGQoKS0+cHJvdG90eXBlRnVuY3Rpb25T
dHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImVuY29kZVVSSUNvbXBvbmVudCIp
LCBnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KSwgRG9udEVudW0pOwogI2lmbmRlZiBOREVC
VUcKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhl
YykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGQoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1
Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImpzY3ByaW50IiksIGdsb2JhbEZ1bmNK
U0NQcmludCksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHRoaXMsIGQo
KS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywg
ImpzY3ByaW50IiksIGdsb2JhbEZ1bmNKU0NQcmludCksIERvbnRFbnVtKTsKICNlbmRpZgogCiAg
ICAgcmVzZXRQcm90b3R5cGUocHJvdG90eXBlKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAppbmRleCBlMzhkYzc5MWE3ZjdmN2Q5ZmYyOGQ5NWJiZTNmZDg1ZjAzMWU4MmMw
Li4wOWE5MmExNTQ2ZmQyZTY2ZWYxNTA4NGYyNjc1NzI3M2Q0M2JmNmI3IDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNjAsMTAgKzE2MCwyMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgIHB1YmxpYzoKICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVf
dCwgSlNHbG9iYWxEYXRhKik7Ci0KKyAgICAgICAgCiAgICAgICAgIGV4cGxpY2l0IEpTR2xvYmFs
T2JqZWN0KCkKICAgICAgICAgICAgIDogSlNWYXJpYWJsZU9iamVjdChKU0dsb2JhbE9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSwgbmV3IEpTR2xvYmFsT2JqZWN0RGF0YShkZXN0cm95
SlNHbG9iYWxPYmplY3REYXRhKSkKICAgICAgICAgeworICAgICAgICAgICAgQ09NUElMRV9BU1NF
UlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVj
dF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKKyAgICAgICAgICAgIHB1dEFub255bW91c1ZhbHVl
KDAsIHRoaXMpOworICAgICAgICAgICAgaW5pdCh0aGlzKTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBzdHJ1Y3R1cmUpCisgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3Qoc3RydWN0dXJl
LCBuZXcgSlNHbG9iYWxPYmplY3REYXRhKGRlc3Ryb3lKU0dsb2JhbE9iamVjdERhdGEpKQorICAg
ICAgICB7CisgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChKU0dsb2JhbE9iamVjdDo6QW5vbnlt
b3VzU2xvdENvdW50ID09IDEsIEpTR2xvYmFsT2JqZWN0X2hhc19vbmx5X2Ffc2luZ2xlX3Nsb3Qp
OworICAgICAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoMCwgdGhpcyk7CiAgICAgICAgICAgICBp
bml0KHRoaXMpOwogICAgICAgICB9CiAKQEAgLTE3MSw2ICsxODEsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBz
dHJ1Y3R1cmUsIEpTR2xvYmFsT2JqZWN0RGF0YSogZGF0YSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkK
ICAgICAgICAgICAgIDogSlNWYXJpYWJsZU9iamVjdChzdHJ1Y3R1cmUsIGRhdGEpCiAgICAgICAg
IHsKKyAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNT
bG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7Cisg
ICAgICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCB0aGlzKTsKICAgICAgICAgICAgIGluaXQo
dGhpc1ZhbHVlKTsKICAgICAgICAgfQogCkBAIC0yODUsNiArMjk3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFu
b255bW91c1Nsb3RDb3VudCA9IEpTVmFyaWFibGVPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCAr
IDE7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAog
ICAgICAgICBzdHJ1Y3QgR2xvYmFsUHJvcGVydHlJbmZvIHsKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCmluZGV4IGY2YzZiNWY5YTcyNjBhYTM5ZjVkOWE4NDBiNjZjNmM2MWI5NTFm
ZTguLmJkMGUyNWZjOTJlYWUwMDljMjg0MWZiYjc0NjQ5OGMyNzllOWQ2NjEgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkVy
cm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpTQXJyYXku
aCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIu
aCIKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgpA
QCAtNDksNiArNTAsMTEgQEAgc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU09OUHJvdG9G
dW5jU3RyaW5naWZ5KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWwKIAogbmFtZXNwYWNlIEpT
QyB7CiAKK0pTT05PYmplY3Q6OkpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCisgICAgOiBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCit7Cit9CisKIC8vIFBy
b3BlcnR5TmFtZUZvckZ1bmN0aW9uQ2FsbCBvYmplY3RzIG11c3QgYmUgb24gdGhlIHN0YWNrLCBz
aW5jZSB0aGUgSlNWYWx1ZSB0aGF0IHRoZXkgY3JlYXRlIGlzIG5vdCBtYXJrZWQuCiBjbGFzcyBQ
cm9wZXJ0eU5hbWVGb3JGdW5jdGlvbkNhbGwgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuaAppbmRleCA3YTllMGE0OGI5MGUwMzU2NDdiOTY4NmUwNTMyNDVhMTMyNTI0MGM1
Li5mNjRiZTEyZGM2MGZlNGU4Yjg1MGY1MzY0YzVhNGQwOTUyYmU0NjQwIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuaApAQCAtMjYsMTggKzI2LDE1IEBACiAjaWZuZGVmIEpTT05PYmpl
Y3RfaAogI2RlZmluZSBKU09OT2JqZWN0X2gKIAotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgY2xhc3MgU3RyaW5naWZpZXI7CiAKLSAgICBjbGFzcyBKU09OT2JqZWN0IDogcHVibGljIEpT
T2JqZWN0IHsKKyAgICBjbGFzcyBKU09OT2JqZWN0IDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBKU09OT2JqZWN0KE5vbk51bGxQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQotICAgICAgICAgICAgOiBKU09iamVjdChzdHJ1Y3R1
cmUpCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICBKU09OT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJl
KTsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CmluZGV4IDFhMjM4MzQxMTVjZTc0NWViMGRiYjliMWUwMjEzMTk1YjllZDBhOGYuLmU5NDJhZDAz
ODE0MDMwY2ZlMThkMTU2N2U5ZTBjODFmNTY3NGM2MjIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKQEAgLTc0LDYgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplcjsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpJ
VDsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTQ2VsbDsKKyAgICAgICAgZnJpZW5kIHZvaWQgc2V0
VXBTdGF0aWNGdW5jdGlvblNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoRW50cnkqIGVu
dHJ5LCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpOwogCiAgICAgcHVibGljOgogICAgICAgICBleHBsaWNpdCBKU09i
amVjdChOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKQEAgLTIxOSw5ICsyMjAsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIG1fc3RydWN0dXJlLT5mbGF0dGVuRGljdGlvbmFy
eVN0cnVjdHVyZSh0aGlzKTsKICAgICAgICAgfQogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOwotCiAgICAgICAgIHZvaWQg
cHV0QW5vbnltb3VzVmFsdWUodW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCiAgICAgICAg
IHsKICAgICAgICAgICAgIEFTU0VSVChpbmRleCA8IG1fc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90
Q291bnQoKSk7CkBAIC0yMzIsNyArMjMwLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKICAg
ICAgICAgICAgIHJldHVybiAqbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpOwogICAgICAgICB9Ci0K
KyAgICAgICAgCisgICAgcHJvdGVjdGVkOgorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSAwOworICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICAvLyBO
b2JvZHkgc2hvdWxkIGV2ZXIgYXNrIGFueSBvZiB0aGVzZSBxdWVzdGlvbnMgb24gc29tZXRoaW5n
IGFscmVhZHkga25vd24gdG8gYmUgYSBKU09iamVjdC4KICAgICAgICAgdXNpbmcgSlNDZWxsOjpp
c0FQSVZhbHVlV3JhcHBlcjsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmNhOTI2MThiZmM1OTIyZmQzZmI2
MTk4NjAxOWQ5NzA4YjA1YThkCi0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmgiCisKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorCituYW1lc3BhY2UgSlND
IHsKKworSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUpCisgICAgOiBKU09iamVjdChzdHJ1Y3R1cmUpCit7CisgICAgQVNTRVJUKCFn
bG9iYWxPYmplY3QgfHwgZ2xvYmFsT2JqZWN0LT5pc0dsb2JhbE9iamVjdCgpKTsKKyAgICBwdXRB
bm9ueW1vdXNWYWx1ZSgwLCBnbG9iYWxPYmplY3QpOworfQorCit9CmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDQ3
Mzg0N2NmODA2YTlhY2I5YzgwNzVkZjU1MThkOWMxMmRjOGU4Ci0tLSAvZGV2L251bGwKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaApAQCAtMCww
ICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Rf
aAorI2RlZmluZSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RfaAorCisjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworCitjbGFz
cyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNPYmplY3QgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pCisgICAgeworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsK
KyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9i
YWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKKworICAgIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdChOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkK
KyAgICAgICAgOiBKU09iamVjdChzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICAvLyBTaG91bGQg
b25seSBiZSB1c2VkIGJ5IEpTRnVuY3Rpb24gd2hlbiB3ZSBhcXVpcmUgdGhlIEpTRnVuY3Rpb24g
dnB0ci4KKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3Vu
dCA9IEpTT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOworfTsKKworfQorCisjZW5kaWYg
Ly8gSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0X2gKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNWYWx1ZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3Bw
CmluZGV4IDUwMjMxMmNhZWFhYzZiMTQxNWM5ZjdjN2ExNzAxMGZlODkxMDJiZDIuLjNhMmQ3MTM0
MjM0YzU5YzczOTNiMzRjYzIwNmYwNTE0NmUwY2QxZjEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zh
bHVlLmNwcApAQCAtMTgxLDQgKzE4MSw5IEBAIE5FVkVSX0lOTElORSBkb3VibGUgbm9uSW5saW5l
TmFOKCkKICNlbmRpZgogfQogCitib29sIEpTVmFsdWU6OmlzVmFsaWRDYWxsZWUoKQoreworICAg
IHJldHVybiBhc09iamVjdChhc09iamVjdChhc0NlbGwoKSktPmdldEFub255bW91c1ZhbHVlKDAp
KS0+aXNHbG9iYWxPYmplY3QoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNWYWx1ZS5oCmluZGV4IGJjZjgyZWVhYjlhYjViODMyMjAyNzQ3ZTk1YTExNjM3ZmEzMGYy
ODguLjkxNGUyZDUxMWI0YzY0ZGE5MTY5ZjQ0N2IwMGUzODZmYzk2ZjNjYjIgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYWx1ZS5oCkBAIC0yMDMsNiArMjAzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgYm9vbCBpc0NlbGwoKSBjb25zdDsKICAgICAgICAgSlNDZWxsKiBhc0NlbGwoKSBjb25z
dDsKKyAgICAgICAgYm9vbCBpc1ZhbGlkQ2FsbGVlKCk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAg
ICAgIGNoYXIqIGRlc2NyaXB0aW9uKCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0xvb2t1cC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKaW5kZXgg
ZWVhZTU0NGYyMmRmOWRjODFkMTAyNzUwN2I0NzEwODNiMGY5MWI3YS4uNTdkNGYwY2NlZDYzZDFm
ZTFkNGQwZWU5ZjNhNDMyNTRjM2VhMjQ2MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Mb29rdXAuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcApA
QCAtNzEsMTcgKzcxLDIwIEBAIHZvaWQgSGFzaFRhYmxlOjpkZWxldGVUYWJsZSgpIGNvbnN0CiAK
IHZvaWQgc2V0VXBTdGF0aWNGdW5jdGlvblNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNo
RW50cnkqIGVudHJ5LCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgQVNTRVJUKHRoaXNPYmotPnN0cnVj
dHVyZSgpLT5hbm9ueW1vdXNTbG90Q291bnQoKSA+IDApOworICAgIEFTU0VSVCh0aGlzT2JqLT5n
ZXRBbm9ueW1vdXNWYWx1ZSgwKS5pc0NlbGwoKSAmJiBhc09iamVjdCh0aGlzT2JqLT5nZXRBbm9u
eW1vdXNWYWx1ZSgwKS5hc0NlbGwoKSktPmlzR2xvYmFsT2JqZWN0KCkpOwogICAgIEFTU0VSVChl
bnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pOwogICAgIEpTVmFsdWUqIGxvY2F0aW9uID0g
dGhpc09iai0+Z2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsKIAogICAgIGlmICghbG9j
YXRpb24pIHsKICAgICAgICAgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKiBmdW5jdGlvbjsKKyAgICAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGFzR2xvYmFsT2JqZWN0KHRoaXNPYmot
PmdldEFub255bW91c1ZhbHVlKDApLmFzQ2VsbCgpKTsKICNpZiBFTkFCTEUoSklUKQogICAgICAg
ICBpZiAoZW50cnktPmdlbmVyYXRvcigpKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBuZXcgKGV4
ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIGVudHJ5LT5mdW5jdGlvbkxlbmd0aCgp
LCBwcm9wZXJ0eU5hbWUsIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24oZW50cnkt
PmZ1bmN0aW9uKCksIGVudHJ5LT5nZW5lcmF0b3IoKSkpOworICAgICAgICAgICAgZnVuY3Rpb24g
PSBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgZW50cnktPmZ1bmN0aW9u
TGVuZ3RoKCksIHByb3BlcnR5TmFtZSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmdldEhvc3RGdW5jdGlv
bihlbnRyeS0+ZnVuY3Rpb24oKSwgZW50cnktPmdlbmVyYXRvcigpKSk7CiAgICAgICAgIGVsc2UK
ICNlbmRpZgotICAgICAgICAgICAgZnVuY3Rpb24gPSBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9u
V3JhcHBlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0
aW9uU3RydWN0dXJlKCksIGVudHJ5LT5mdW5jdGlvbkxlbmd0aCgpLCBwcm9wZXJ0eU5hbWUsIGVu
dHJ5LT5mdW5jdGlvbigpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gbmV3IChleGVjKSBOYXRp
dmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnByb3Rv
dHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIGVudHJ5LT5mdW5jdGlvbkxlbmd0aCgpLCBwcm9wZXJ0
eU5hbWUsIGVudHJ5LT5mdW5jdGlvbigpKTsKIAogICAgICAgICB0aGlzT2JqLT5wdXREaXJlY3RG
dW5jdGlvbihwcm9wZXJ0eU5hbWUsIGZ1bmN0aW9uLCBlbnRyeS0+YXR0cmlidXRlcygpKTsKICAg
ICAgICAgbG9jYXRpb24gPSB0aGlzT2JqLT5nZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUp
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5kZXggMWUyOGRmYTIzODZmMzhm
NWQ4OWEwNDU4OGI4NGFjNmRkOTNjOTQwOS4uYmUyNDllNTU5NzFlNzk5NDY1NDA0NGUyM2I1YTlm
ZTI2NzgyMjk5YSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC04Niw4
ICs4Niw4IEBAIGNvbnN0IENsYXNzSW5mbyBNYXRoT2JqZWN0OjppbmZvID0geyAiTWF0aCIsIDAs
IDAsIEV4ZWNTdGF0ZTo6bWF0aFRhYmxlIH07CiBAZW5kCiAqLwogCi1NYXRoT2JqZWN0OjpNYXRo
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1
Y3R1cmUpCi0gICAgOiBKU09iamVjdChzdHJ1Y3R1cmUpCitNYXRoT2JqZWN0OjpNYXRoT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCisgICAgOiBKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24oSWRlbnRpZmllcihleGVjLCAiRSIpLCBqc051bWJlcihleGVjLCBleHAoMS4wKSks
IERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbihJZGVudGlmaWVyKGV4ZWMsICJMTjIiKSwganNOdW1iZXIoZXhlYywgbG9nKDIu
MCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aE9iamVjdC5oCmluZGV4IGE5ZjcwMzEzZDRmZWFiOWUxMmIzMGQ0ODRiNGQ1ODhiOWVjOTVk
ZjUuLjMxZmEyZmViODZlM2VjZDhmOWYzMjMzMGMzY2ZhMTViN2ZkZDYwMWQgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0yMSwxMyArMjEsMTMgQEAKICNpZm5kZWYgTWF0aE9i
amVjdF9oCiAjZGVmaW5lIE1hdGhPYmplY3RfaAogCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNp
bmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LSAgICBjbGFzcyBNYXRoT2JqZWN0IDogcHVibGljIEpTT2JqZWN0IHsKKyAgICBjbGFzcyBNYXRo
T2JqZWN0IDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CiAgICAgcHVibGljOgot
ICAgICAgICBNYXRoT2JqZWN0KEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4pOworICAgICAgICBNYXRoT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDAz
ZmM3ZWNjYTQ2M2U2MmM2YjE4NDkxODY4YmFlODE3MDA3ZDU0YS4uNGE5ZDQxYmZjMWU1MjM4ZTI2
ODcyZWViYmY5MjQ2NjE3MzBkYmQ0NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zMiw4ICszMiw4IEBAIEFTU0VSVF9DTEFT
U19GSVRTX0lOX0NFTEwoTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5m
byBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjppbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxG
dW5jdGlvbjo6aW5mbywgMCwgMCB9OwogCi1OYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVF
cnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBzdHJ1Y3R1cmUsIE5hdGl2ZUVycm9yUHJvdG90eXBlKiBuYXRpdmVFcnJvclByb3RvdHlw
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
LCBJZGVudGlmaWVyKGV4ZWMsIG5hdGl2ZUVycm9yUHJvdG90eXBlLT5nZXREaXJlY3QoZXhlYy0+
cHJvcGVydHlOYW1lcygpLm5hbWUpLmdldFN0cmluZyhleGVjKSkpCitOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1
cmUsIE5hdGl2ZUVycm9yUHJvdG90eXBlKiBuYXRpdmVFcnJvclByb3RvdHlwZSkKKyAgICA6IElu
dGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIElkZW50aWZpZXIoZXhlYywgbmF0aXZlRXJyb3JQcm90b3R5cGUtPmdldERpcmVjdChleGVj
LT5wcm9wZXJ0eU5hbWVzKCkubmFtZSkuZ2V0U3RyaW5nKGV4ZWMpKSkKICAgICAsIG1fZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKG5hdGl2ZUVycm9yUHJvdG90
eXBlKSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNO
dW1iZXIoZXhlYywgMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8gRUNN
QSAxNS4xMS43LjUKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmgKaW5kZXggMTUyZGJhYzJmNWE3MjY0N2FiNWU5ODkzNTg3MTU0YWEwZTQ5NjFiOC4u
OGNiYTUyNDFiYmE3YmEwZDkzNjg5ODU1ODAxNmYzYWU5MWUyMjI5MiAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTMxLDcgKzMxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHB1YmxpYzoKLSAgICAgICAgTmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBO
YXRpdmVFcnJvclByb3RvdHlwZSopOworICAgICAgICBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwg
TmF0aXZlRXJyb3JQcm90b3R5cGUqKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IGluZm87CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQ
cm90b3R5cGUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlw
ZS5jcHAKaW5kZXggYWE0NmE2YTQyOTJmNGU5NjViNGQ5OWFiYWFkN2FkMTliODJkMzc5MC4uNGUx
YmEwZTQ0ZmVlMTBhNDdlOGFiMGU3ZjBkMzE0MTRlNTZjNmJkYSAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAK
ICNpbmNsdWRlICJOYXRpdmVFcnJvclByb3RvdHlwZS5oIgogCiAjaW5jbHVkZSAiRXJyb3JQcm90
b3R5cGUuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiVVN0cmluZy5oIgogCkBAIC0yOSw4ICszMCw4IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE5hdGl2ZUVycm9yUHJvdG90eXBlKTsK
IAotTmF0aXZlRXJyb3JQcm90b3R5cGU6Ok5hdGl2ZUVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSog
ZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJp
bmcmIG5hbWUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCi0gICAgOiBKU09iamVjdChzdHJ1Y3R1
cmUpCitOYXRpdmVFcnJvclByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbmFtZSwgY29uc3QgVVN0cmluZyYg
bWVzc2FnZSkKKyAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0
cnVjdHVyZSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUsIGpz
U3RyaW5nKGV4ZWMsIG5hbWUpLCAwKTsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1l
cygpLm1lc3NhZ2UsIGpzU3RyaW5nKGV4ZWMsIG1lc3NhZ2UpLCAwKTsKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaAppbmRleCAwYzY1YTljM2U0NWI5MzUy
MjdiNWI2YTIwYTk0OWFlNDA0MDFhNTVhLi4yMmUxNjM4YzYwODIwMDY3OWYyNjBiMjcxYzllMmMw
NDAxYmE1NTg0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
UHJvdG90eXBlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3Rv
dHlwZS5oCkBAIC0yMSwxMyArMjEsMTMgQEAKICNpZm5kZWYgTmF0aXZlRXJyb3JQcm90b3R5cGVf
aAogI2RlZmluZSBOYXRpdmVFcnJvclByb3RvdHlwZV9oCiAKLSNpbmNsdWRlICJKU09iamVjdC5o
IgorI2luY2x1ZGUgIkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAotICAgIGNsYXNzIE5hdGl2ZUVycm9yUHJvdG90eXBlIDogcHVibGljIEpTT2JqZWN0IHsK
KyAgICBjbGFzcyBOYXRpdmVFcnJvclByb3RvdHlwZSA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgTmF0aXZlRXJyb3JQcm90b3R5cGUoRXhl
Y1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgY29uc3QgVVN0cmluZyYgbmFt
ZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSk7CisgICAgICAgIE5hdGl2ZUVycm9yUHJvdG90eXBl
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiwgY29uc3QgVVN0cmluZyYgbmFtZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSk7CiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwCmluZGV4IDBiN2U4MjE2ZTg1N2M1YmFmYTNiOGI0OGZjMmJiMWJkODE1NDVh
YmYuLjQ4MmU4N2JkMDAzNGMzZWRjNWQzZTg5OGJkN2Q2NTM1NWYyNjk2YmQgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCkBAIC01NCw4ICs1NCw4IEBA
IGNvbnN0IENsYXNzSW5mbyBOdW1iZXJDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgIkZ1bmN0aW9uIiwg
JkludGVybmFsRnVuY3Rpb246OmluZm8sCiBAZW5kCiAqLwogCi1OdW1iZXJDb25zdHJ1Y3Rvcjo6
TnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IHN0cnVjdHVyZSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5cGUpCi0gICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSwgSWRlbnRp
ZmllcihleGVjLCBudW1iZXJQcm90b3R5cGUtPmluZm8uY2xhc3NOYW1lKSkKK051bWJlckNvbnN0
cnVjdG9yOjpOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBO
dW1iZXJQcm90b3R5cGUqIG51bWJlclByb3RvdHlwZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24o
JmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIElkZW50aWZpZXIo
ZXhlYywgbnVtYmVyUHJvdG90eXBlLT5pbmZvLmNsYXNzTmFtZSkpCiB7CiAgICAgLy8gTnVtYmVy
LlByb3RvdHlwZQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wcm90b3R5cGUsIG51bWJlclByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5o
CmluZGV4IDcyM2M0YjI4MzE1MmIwMTAzMDIyNWUzZmFlNzFiNTBmZTkyNmI5MTguLmQ4YTI1OTNi
YTE2ZDE5NTkxNzExYmU0YzBjYWNlYjM5ZjIwZWQ0ZDAgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICBjbGFzcyBOdW1iZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9u
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIE5v
bk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIE51bWJlclByb3RvdHlwZSopOworICAgICAgICBO
dW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNz
UmVmUHRyPFN0cnVjdHVyZT4sIE51bWJlclByb3RvdHlwZSopOwogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCA3MzI2Yjlk
ZDAzYzg2N2M3MDAwMDdjZTcwNDRmNGYxNWI1YmEzN2NlLi5lZmVkOTBiODQ3NDliZWFiNmZlZDhl
YTk5NDFiMGNkYTA0ZmJkNDcwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlclByb3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwCkBAIC00NywxOSArNDcsMTkgQEAgc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbihFeGVjU3RhdGUqLCBKU09iamVjdCosIEoKIAog
Ly8gRUNNQSAxNS43LjQKIAotTnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUoRXhlY1N0
YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgU3RydWN0
dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSkKK051bWJlclByb3RvdHlwZTo6TnVtYmVy
UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Tm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUpCiAgICAgOiBOdW1iZXJPYmplY3Qoc3RydWN0dXJlKQogewog
ICAgIHNldEludGVybmFsVmFsdWUoanNOdW1iZXIoZXhlYywgMCkpOwogCiAgICAgLy8gVGhlIGNv
bnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIE51bWJlckNvbnN0cnVjdG9yIGhh
cyBiZWVuIGNvbnN0cnVjdGVkCiAKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcsIG51
bWJlclByb3RvRnVuY1RvU3RyaW5nKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdEZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIo
ZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS50b0xvY2FsZVN0cmluZywgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpLCBEb250RW51
bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4
ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVy
ZSwgMCwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnZhbHVlT2YsIG51bWJlclByb3RvRnVuY1ZhbHVl
T2YpLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihl
eGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnRvRml4ZWQsIG51bWJlclBy
b3RvRnVuY1RvRml4ZWQpLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBw
cm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnRvRXhw
b25lbnRpYWwsIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwpLCBEb250RW51bSk7Ci0gICAg
cHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2
ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnRvUHJlY2lzaW9uLCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lv
biksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4
ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0
cmluZywgbnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0
RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9u
V3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAw
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9Mb2NhbGVTdHJpbmcsIG51bWJlclByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMCwgZXhlYy0+cHJvcGVydHlO
YW1lcygpLnZhbHVlT2YsIG51bWJlclByb3RvRnVuY1ZhbHVlT2YpLCBEb250RW51bSk7CisgICAg
cHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2
ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3Ry
dWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9GaXhlZCwgbnVtYmVyUHJvdG9GdW5j
VG9GaXhlZCksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS50b0V4cG9uZW50aWFsLCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKSwgRG9udEVudW0p
OworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVj
KSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnRvUHJlY2lzaW9uLCBudW1i
ZXJQcm90b0Z1bmNUb1ByZWNpc2lvbiksIERvbnRFbnVtKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmggYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCmluZGV4IDFmYjIwNzcxZTAy
MjEyNmE2NmRjYzI0NGUyNDM4MDAxZWFlNzZiMzcuLjc4YjY5MGVjMGVjOTY3NDJiZGNkMjdhM2I4
MmY3ZWQwYzc5NmNkZmYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
aApAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIE51bWJlclBy
b3RvdHlwZSA6IHB1YmxpYyBOdW1iZXJPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgTnVt
YmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFN0
cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUpOworICAgICAgICBOdW1iZXJQcm90
b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+LCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggMDgzOGViNDM3NTUwMDRiNTc5ZDYzNDdiMDliNDc2YTBhMGJhOTNj
Zi4uZmU5OGRmMzZhYzE4OTczZGE2MzliMGUzNjM2N2NhYTM2MTA4NTNmYiAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDggKzQyLDggQEAg
c3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3Bl
cnR5KEV4ZWNTdGF0ZSosIEpTT2JqZWMKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNW
YWx1ZSwgY29uc3QgQXJnTGlzdCYpOwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvckNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0
IEFyZ0xpc3QmKTsKIAotT2JqZWN0Q29uc3RydWN0b3I6Ok9iamVjdENvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIE9iamVj
dFByb3RvdHlwZSogb2JqZWN0UHJvdG90eXBlLCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlKQotOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSwgSWRlbnRpZmllcihleGVjLCAiT2JqZWN0IikpCitPYmplY3RDb25zdHJ1Y3Rvcjo6T2Jq
ZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgT2JqZWN0UHJvdG90
eXBlKiBvYmplY3RQcm90b3R5cGUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUpCis6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIElkZW50aWZpZXIoZXhlYywgIk9iamVjdCIpKQogewogICAgIC8vIEVDTUEg
MTUuMi4zLjEKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5wcm9wZXJ0eU5h
bWVzKCkucHJvdG90eXBlLCBvYmplY3RQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KTsKQEAgLTUxLDEzICs1MSwxMyBAQCBPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cgog
ICAgIC8vIG5vLiBvZiBhcmd1bWVudHMgZm9yIGNvbnN0cnVjdG9yCiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24oZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhl
YywgMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKICAgICAKLSAgICBwdXRE
aXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVu
Y3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuZ2V0UHJvdG90eXBlT2YsIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90
eXBlT2YpLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlv
bihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVG
dW5jdGlvblN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blByb3BlcnR5
RGVzY3JpcHRvciwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpLCBE
b250RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBu
ZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0
cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blByb3BlcnR5TmFtZXMsIG9i
amVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyksIERvbnRFbnVtKTsKLSAgICBwdXRE
aXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVu
Y3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkua2V5cywgb2JqZWN0Q29uc3RydWN0b3JLZXlzKSwgRG9udEVudW0pOwot
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBO
YXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5kZWZpbmVQcm9wZXJ0eSwgb2JqZWN0Q29uc3RydWN0b3JE
ZWZpbmVQcm9wZXJ0eSksIERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHBy
b3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZGVmaW5l
UHJvcGVydGllcywgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0aWVzKSwgRG9udEVudW0p
OwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVj
KSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUs
IDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jcmVhdGUsIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRl
KSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhl
YywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldFBy
b3RvdHlwZU9mLCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBO
YXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlv
blN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blByb3BlcnR5RGVzY3Jp
cHRvciwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpLCBEb250RW51
bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4
ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1
bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0T3duUHJvcGVydHlO
YW1lcywgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBO
YXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlv
blN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmtleXMsIG9iamVjdENvbnN0cnVj
dG9yS2V5cyksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDMsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5kZWZpbmVQcm9wZXJ0eSwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSksIERvbnRF
bnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAo
ZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
RnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5kZWZpbmVQcm9wZXJ0
aWVzLCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpLCBEb250RW51bSk7CisgICAg
cHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2
ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3Ry
dWN0dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY3JlYXRlLCBvYmplY3RDb25zdHJ1Y3Rv
ckNyZWF0ZSksIERvbnRFbnVtKTsKIH0KIAogLy8gRUNNQSAxNS4yLjIKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCAxZDJjZGRlYWNjYTVjZWU3MzNkMzYz
YWVhNmIyNmZkMmE4MTQ1N2ZhLi4wNGEzYzFhOTQyNzA5N2U5ZTk1ZmVmOGRlYTMwNDljZTZhZDhh
YWYzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0y
OSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgT2JqZWN0Q29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBPYmpl
Y3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBP
YmplY3RQcm90b3R5cGUqLCBTdHJ1Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsK
KyAgICAgICAgT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBPYmplY3RQcm90b3R5cGUqLCBTdHJ1Y3R1cmUq
IHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZp
cnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCBjMzJhMDA3MzRh
Y2M4MjgwMGQ0Y2RiNjE0MWRjMTZiYTAzMzI0Y2U1Li45NzYwMWYzMGNiOTk3N2VkMWMxN2Q2YmQ5
MjE1ZGI1MTBlY2Y2NDQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5
cGUuY3BwCkBAIC00MSwyMiArNDEsMjIgQEAgc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcm90b0Z1bmNMb29rdXBTZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLAogc3RhdGlj
IEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNQcm9wZXJ0eUlzRW51bWVyYWJs
ZShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3QmKTsKIHN0YXRp
YyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdMaXN0Jik7CiAKLU9iamVjdFBy
b3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBzdHVjdHVyZSwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVj
dHVyZSkKK09iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBzdHVjdHVyZSwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSkKICAgICA6
IEpTT2JqZWN0KHN0dWN0dXJlKQogICAgICwgbV9oYXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFt
ZXModHJ1ZSkKIHsKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMs
IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcsIG9iamVjdFByb3Rv
RnVuY1RvU3RyaW5nKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJv
dG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b0xvY2Fs
ZVN0cmluZywgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpLCBEb250RW51bSk7Ci0gICAg
cHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2
ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMCwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnZhbHVlT2YsIG9iamVjdFByb3RvRnVuY1ZhbHVlT2YpLCBEb250
RW51bSk7Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcg
KGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVj
dHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmhhc093blByb3BlcnR5LCBvYmplY3RQcm90
b0Z1bmNIYXNPd25Qcm9wZXJ0eSksIERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4
ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvcGVydHlJc0VudW1lcmFibGUsIG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxl
KSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhl
YywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rp
b25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pc1Byb3RvdHlwZU9mLCBvYmpl
Y3RQcm90b0Z1bmNJc1Byb3RvdHlwZU9mKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBw
ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMCwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnRvU3RyaW5nLCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyksIERv
bnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5l
dyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b0xvY2FsZVN0
cmluZywgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpLCBEb250RW51bSk7CisgICAgcHV0
RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0
dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWVPZiwgb2JqZWN0UHJvdG9GdW5jVmFs
dWVPZiksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5o
YXNPd25Qcm9wZXJ0eSwgb2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHkpLCBEb250RW51bSk7
CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMp
IE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0
aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvcGVydHlJc0VudW1lcmFi
bGUsIG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKSwgRG9udEVudW0pOworICAg
IHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRp
dmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0
cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmlzUHJvdG90eXBlT2YsIG9iamVjdFBy
b3RvRnVuY0lzUHJvdG90eXBlT2YpLCBEb250RW51bSk7CiAKICAgICAvLyBNb3ppbGxhIGV4dGVu
c2lvbnMKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAo
ZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0
dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuX19kZWZpbmVHZXR0ZXJfXywgb2JqZWN0UHJv
dG9GdW5jRGVmaW5lR2V0dGVyKSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhl
YywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5f
X2RlZmluZVNldHRlcl9fLCBvYmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIpLCBEb250RW51bSk7
Ci0gICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMp
IE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwg
MSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLl9fbG9va3VwR2V0dGVyX18sIG9iamVjdFByb3RvRnVu
Y0xvb2t1cEdldHRlciksIERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHBy
b3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuX19sb29r
dXBTZXR0ZXJfXywgb2JqZWN0UHJvdG9GdW5jTG9va3VwU2V0dGVyKSwgRG9udEVudW0pOworICAg
IHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRp
dmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0
cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLl9fZGVmaW5lR2V0dGVyX18sIG9iamVj
dFByb3RvRnVuY0RlZmluZUdldHRlciksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlv
bldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVy
KGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5fX2RlZmluZVNldHRlcl9fLCBvYmplY3RQcm90b0Z1bmNEZWZpbmVT
ZXR0ZXIpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlv
bihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
X19sb29rdXBHZXR0ZXJfXywgb2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVyKSwgRG9udEVudW0p
OworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVj
KSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLl9fbG9va3VwU2V0dGVyX18s
IG9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlciksIERvbnRFbnVtKTsKIH0KIAogdm9pZCBPYmpl
Y3RQcm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggNDg5ZDk2MjQ0MWIwMmVmYmEyZGMy
YjZhNzgzOWE2ZDg3Nzk2ZDRkMi4uNDcwNjVkNzZjMGEzMDUzZTA0ZGVjMDBiMDRhNmZmZjNlNDFm
OGFjZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
aAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC0yNyw3
ICsyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgT2JqZWN0UHJvdG90eXBlIDog
cHVibGljIEpTT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIE9iamVjdFByb3RvdHlwZShF
eGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBTdHJ1Y3R1cmUqIHByb3Rv
dHlwZUZ1bmN0aW9uU3RydWN0dXJlKTsKKyAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgU3RydWN0
dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSk7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvdG90eXBlRnVuY3Rpb24uY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVG
dW5jdGlvbi5jcHAKaW5kZXggMzhmOGFkYmJiZDBlZWFlY2U0NDJiZWFjZGI5MmI3MjM4MTE3ODEw
Yy4uYjBiZjJiZDU1ZGU4M2NmMDAwNTIxYWM1NzllY2VlOTQwYjM2MGYwNCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVGdW5jdGlvbi5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVGdW5jdGlvbi5jcHAKQEAgLTMyLDE2ICszMiwxNiBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChQcm90b3R5cGVG
dW5jdGlvbik7CiAKLVByb3RvdHlwZUZ1bmN0aW9uOjpQcm90b3R5cGVGdW5jdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJl
KCksIG5hbWUpCitQcm90b3R5cGVGdW5jdGlvbjo6UHJvdG90eXBlRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbikKKyAgICA6IEludGVybmFs
RnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIG5hbWUpCiAgICAg
LCBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQogewogICAgIEFTU0VSVF9BUkcoZnVuY3Rpb24sIGZ1bmN0
aW9uKTsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1i
ZXIoZXhlYywgbGVuZ3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQog
Ci1Qcm90b3R5cGVGdW5jdGlvbjo6UHJvdG90eXBlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCBp
bnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlv
bikKLSAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvdG90eXBl
RnVuY3Rpb25TdHJ1Y3R1cmUsIG5hbWUpCitQcm90b3R5cGVGdW5jdGlvbjo6UHJvdG90eXBlRnVu
Y3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25O
dWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbikK
KyAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgbmFtZSkKICAgICAsIG1fZnVuY3Rpb24oZnVu
Y3Rpb24pCiB7CiAgICAgQVNTRVJUX0FSRyhmdW5jdGlvbiwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVGdW5jdGlvbi5oIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm90b3R5cGVGdW5jdGlvbi5oCmluZGV4IDcwZWUwMzRmMWY4ZjBiOGUw
YTI0NmQxMWNlZGU4NGEyYjM4NzBhZGMuLjZjYTIzNDJhMDY0NWVlNzMyYmNhZTFjOWZmNmEwNThj
NjRiZGY3NDIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlRnVu
Y3Rpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZUZ1bmN0aW9uLmgK
QEAgLTMxLDggKzMxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBQcm90b3R5cGVG
dW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IFByb3RvdHlwZUZ1bmN0aW9uKEV4ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZp
ZXImLCBOYXRpdmVGdW5jdGlvbik7Ci0gICAgICAgIFByb3RvdHlwZUZ1bmN0aW9uKEV4ZWNTdGF0
ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGludCBsZW5ndGgsIGNvbnN0IElkZW50
aWZpZXImLCBOYXRpdmVGdW5jdGlvbik7CisgICAgICAgIFByb3RvdHlwZUZ1bmN0aW9uKEV4ZWNT
dGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYsIE5h
dGl2ZUZ1bmN0aW9uKTsKKyAgICAgICAgUHJvdG90eXBlRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBpbnQgbGVuZ3RoLCBj
b25zdCBJZGVudGlmaWVyJiwgTmF0aXZlRnVuY3Rpb24pOwogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAzYTY3YWU2ODhiZjIyMjll
ZWI4ODFlMGUwYjIzNGMyMGE5NjljZTA2Li5lN2U2MTA5OTc4MWE2YzQ2ODUxMWI3ZDA0NWIwOGE1
ZDQ4YjdiNjlmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcApAQCAtOTEsOCArOTEsOCBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwQ29uc3RydWN0b3I6
OmluZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjppbmZvLAogQGVuZAogKi8K
IAotUmVnRXhwQ29uc3RydWN0b3I6OlJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Tm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFJlZ0V4cFByb3RvdHlwZSog
cmVnRXhwUHJvdG90eXBlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0
YSgpLCBzdHJ1Y3R1cmUsIElkZW50aWZpZXIoZXhlYywgIlJlZ0V4cCIpKQorUmVnRXhwQ29uc3Ry
dWN0b3I6OlJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFJl
Z0V4cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbigm
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgSWRlbnRpZmllcihl
eGVjLCAiUmVnRXhwIikpCiAgICAgLCBkKG5ldyBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUpCiB7
CiAgICAgLy8gRUNNQSAxNS4xMC41LjEgUmVnRXhwLnByb3RvdHlwZQpAQCAtMzA0LDcgKzMwNCw3
IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogICAgIFJlZlB0cjxSZWdFeHA+IHJlZ0V4cCA9IFJlZ0V4cDo6Y3JlYXRlKCZl
eGVjLT5nbG9iYWxEYXRhKCksIHBhdHRlcm4sIGZsYWdzKTsKICAgICBpZiAoIXJlZ0V4cC0+aXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgbWFr
ZVN0cmluZygiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246ICIsIHJlZ0V4cC0+ZXJyb3JNZXNz
YWdlKCkpKTsKLSAgICByZXR1cm4gbmV3IChleGVjKSBSZWdFeHBPYmplY3QoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnRXhwLnJlbGVhc2UoKSk7Cisg
ICAgcmV0dXJuIG5ldyAoZXhlYykgUmVnRXhwT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVn
RXhwLnJlbGVhc2UoKSk7CiB9CiAKIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0V2l0aFJlZ0V4
cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdMaXN0JiBh
cmdzKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IGJi
MDY3MWFhMTQ2MjBiNTlkYWI0YWU1MzE4MzcxMTJjOTkxNTEzNzkuLjU4YWJkZTU3OGRiODE3NDZk
YzliYmVlMzNiZjc2ZjA5MzE4ZWQwNjkgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBj
bGFzcyBSZWdFeHBDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNz
UmVmUHRyPFN0cnVjdHVyZT4sIFJlZ0V4cFByb3RvdHlwZSopOworICAgICAgICBSZWdFeHBDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0
cnVjdHVyZT4sIFJlZ0V4cFByb3RvdHlwZSopOwogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggYmM3NDkyNGQwZGJh
NDMzNTIzNjI3YjhiNDYzNDA0Yjc1YzA0OTQ0MS4uYjA0YjU1ZTdjZWQzZDIyOWMwYzkyMGQyZmU4
MWVmYmIwNjhiYzljYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApA
QCAtNTgsOCArNTgsOCBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjppbmZvID0geyAi
UmVnRXhwIiwgMCwgMCwgRXhlY1N0YXRlOjpyZWdFeHBUYWJsZSB9OwogQGVuZAogKi8KIAotUmVn
RXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1
Y3R1cmUsIE5vbk51bGxQYXNzUmVmUHRyPFJlZ0V4cD4gcmVnRXhwKQotICAgIDogSlNPYmplY3Qo
c3RydWN0dXJlKQorUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIE5vbk51
bGxQYXNzUmVmUHRyPFJlZ0V4cD4gcmVnRXhwKQorICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgZChuZXcgUmVnRXhwT2JqZWN0RGF0
YShyZWdFeHAsIDApKQogewogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5k
ZXggNGFkMTFlZjdhNTkwNzI2NGIyODFiODUwZmVmMWE2MmUzYWM2ZWUxMi4uMzMyNGU1M2Y2OTdk
NDIxOGFiZjBjYmMwMDVlNjIwNGJjNDkzNGZjYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCkBAIC0yMSwxNCArMjEsMTQgQEAKICNpZm5kZWYgUmVnRXhwT2JqZWN0X2gKICNk
ZWZpbmUgUmVnRXhwT2JqZWN0X2gKIAotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAi
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCi0gICAgY2xhc3MgUmVnRXhwT2JqZWN0IDogcHVibGljIEpTT2JqZWN0IHsK
KyAgICBjbGFzcyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFJlZ0V4cE9iamVjdChOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+LCBOb25OdWxsUGFzc1JlZlB0cjxSZWdFeHA+KTsKKyAgICAgICAgUmVnRXhwT2Jq
ZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVj
dHVyZT4sIE5vbk51bGxQYXNzUmVmUHRyPFJlZ0V4cD4pOwogICAgICAgICB2aXJ0dWFsIH5SZWdF
eHBPYmplY3QoKTsKIAogICAgICAgICB2b2lkIHNldFJlZ0V4cChQYXNzUmVmUHRyPFJlZ0V4cD4g
cikgeyBkLT5yZWdFeHAgPSByOyB9CkBAIC01Myw4ICs1Myw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0
OjpTdHJ1Y3R1cmVGbGFnczsKLQorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOworICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAg
ICBib29sIG1hdGNoKEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmKTsKIApkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4IGRkNWZlMDI1MmY5NjE1Yzg2YTQw
Y2Y0YzI3YzYxZGI4ZjNhZWIwM2IuLjllYmYxMDU2ZTgwZTY2YzExMDAxNmJmZGEzODdlY2U1ZjVh
MDA1ODggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAg
LTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
RnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYQogCiBjb25zdCBDbGFzc0lu
Zm8gUmVnRXhwUHJvdG90eXBlOjppbmZvID0geyAiUmVnRXhwUHJvdG90eXBlIiwgMCwgMCwgMCB9
OwogCi1SZWdFeHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIE5v
bk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBTdHJ1Y3R1cmUqIHByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlKQorUmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0
cnVjdHVyZSkKICAgICA6IEpTT2JqZWN0KHN0cnVjdHVyZSkKIHsKLSAgICBwdXREaXJlY3RGdW5j
dGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFw
cGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY29tcGlsZSwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZSksIERvbnRFbnVtKTsKLSAgICBw
dXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZl
RnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAwLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkuZXhlYywgcmVnRXhwUHJvdG9GdW5jRXhlYyksIERvbnRFbnVtKTsK
LSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykg
TmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAw
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudGVzdCwgcmVnRXhwUHJvdG9GdW5jVGVzdCksIERvbnRF
bnVtKTsKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAo
ZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0
dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcsIHJlZ0V4cFByb3RvRnVuY1Rv
U3RyaW5nKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMCwgZXhlYy0+cHJvcGVydHlOYW1lcygp
LmNvbXBpbGUsIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUpLCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0
aW9uV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJl
LCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZXhlYywgcmVnRXhwUHJvdG9GdW5jRXhlYyksIERv
bnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5l
dyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50ZXN0LCByZWdF
eHBQcm90b0Z1bmNUZXN0KSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMCwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnRvU3RyaW5nLCByZWdFeHBQcm90b0Z1bmNUb1N0cmluZyksIERvbnRFbnVtKTsK
IH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oCmluZGV4IGQzOTc5YmRkMjE2ZWQ3YjhlNzBmOGFiNmZjNjc1ZmM5OWQzY2RkYjkuLjc3YzFl
YTdkMDFiYzZjNDE3MzM0YWI2YmY4Mjk4NjRkMDY1Nzk5NzUgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIGNsYXNzIFJlZ0V4cFByb3RvdHlwZSA6IHB1YmxpYyBKU09iamVjdCB7CiAgICAgcHVi
bGljOgotICAgICAgICBSZWdFeHBQcm90b3R5cGUoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSk7Cisg
ICAgICAgIFJlZ0V4cFByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51
bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1
Y3R1cmUpOwogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBj
b25zdCB7IHJldHVybiAmaW5mbzsgfQogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGlu
Zm87CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmluZGV4
IGZjMGMzNWY1OGJjNWYwNjFhYWM1ZmQ0MmNiM2I0YjI5MWJhM2ExYjUuLmI1YzQ2YjZkOGJmMGFh
NjE4YjZlZjIxODgyMWUzMDNiYWU2ZTdkM2IgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC00OSwxNyArNDksMTcgQEAgc3RhdGljIEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCosIEpTVmEKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChTdHJpbmdDb25zdHJ1Y3Rvcik7
CiAKLVN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBTdHJ1Y3R1cmUqIHByb3Rv
dHlwZUZ1bmN0aW9uU3RydWN0dXJlLCBTdHJpbmdQcm90b3R5cGUqIHN0cmluZ1Byb3RvdHlwZSkK
LSAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBJ
ZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1Byb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkp
CitTdHJpbmdDb25zdHJ1Y3Rvcjo6U3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IHN0cnVjdHVyZSwgU3RydWN0dXJlKiBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgU3RyaW5n
UHJvdG90eXBlKiBzdHJpbmdQcm90b3R5cGUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVj
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBJZGVudGlmaWVyKGV4ZWMs
IHN0cmluZ1Byb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkpCiB7CiAgICAgLy8gRUNN
QSAxNS41LjMuMSBTdHJpbmcucHJvdG90eXBlCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24oZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgc3RyaW5nUHJvdG90eXBlLCBSZWFk
T25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAKICAgICAvLyBFQ01BIDE1LjUuMy4yIGZy
b21DaGFyQ29kZSgpCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMs
IHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZnJv
bUNoYXJDb2RlLCBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKHN0cmluZ0Zyb21D
aGFyQ29kZSwgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IpKSwgRG9udEVudW0pOworICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVj
dHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmZyb21DaGFyQ29kZSwgZXhlYy0+Z2xvYmFs
RGF0YSgpLmdldEhvc3RGdW5jdGlvbihzdHJpbmdGcm9tQ2hhckNvZGUsIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKSksIERvbnRFbnVtKTsKICNlbHNlCi0gICAgcHV0RGlyZWN0RnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihl
eGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygp
LmZyb21DaGFyQ29kZSwgc3RyaW5nRnJvbUNoYXJDb2RlKSwgRG9udEVudW0pOworICAgIHB1dERp
cmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5j
dGlvbldyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVy
ZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmZyb21DaGFyQ29kZSwgc3RyaW5nRnJvbUNoYXJD
b2RlKSwgRG9udEVudW0pOwogI2VuZGlmCiAgICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3IgY29u
c3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5wcm9wZXJ0eU5h
bWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERv
bnREZWxldGUpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGU1MTFmN2JmMmVhMGE3NmZmNTA4MmJkMzBiNjZiN2EyYzY2ZTk3MmMuLjIwZjNhNTJkYWM1
ZWFkY2VjMThiYWE0M2ZmZDk1ZTNjMGE4N2Q3NDYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICBjbGFzcyBTdHJpbmdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIE5vbk51
bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1
Y3R1cmUsIFN0cmluZ1Byb3RvdHlwZSopOworICAgICAgICBTdHJpbmdDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFN0
cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIFN0cmluZ1Byb3RvdHlwZSopOwog
CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmKTsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYp
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGIzODVl
NzBkZmYzZWYwODJiMDUyNjJiYjJjZGVmMmQ2M2I0NGM5NTguLmIzNTBkNDVjNTdhNWU5YjZhMTNl
MGJkYzQyYTJkN2RkYzZhZGJjN2EgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAKQEAgLTEzMiw5ICsxMzIsMTAgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ1By
b3RvdHlwZTo6aW5mbyA9IHsgIlN0cmluZyIsICZTdHJpbmdPYmplY3Q6OmluZm8sIDAsIEV4ZWMK
ICovCiAKIC8vIEVDTUEgMTUuNS40Ci1TdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZShF
eGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQor
U3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSkKICAgICA6IFN0cmluZ09iamVjdChleGVjLCBzdHJ1Y3R1cmUpCiB7CisgICAgcHV0QW5v
bnltb3VzVmFsdWUoMCwgZ2xvYmFsT2JqZWN0KTsKICAgICAvLyBUaGUgY29uc3RydWN0b3Igd2ls
bCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgU3RyaW5nQ29uc3RydWN0b3IgaGFzIGJlZW4gYnVpbHQK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoLCBqc051bWJlcihleGVjLCAwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0p
OwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggM2E2YTJh
MzkwNzZiOWZjMjRkMDk0YTViOGNlM2RkMGFjYTIzMGE1Ni4uNGIwZjg4ZjU4M2YzMGFjNTVhMzYz
NzcxZjEzMzRjYTY1MmE5NmIxMSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3Ry
aW5nUHJvdG90eXBlIDogcHVibGljIFN0cmluZ09iamVjdCB7CiAgICAgcHVibGljOgotICAgICAg
ICBTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
Pik7CisgICAgICAgIFN0cmluZ1Byb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4pOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOWY2NjY1NGMzZDcyZWNhMzhhYzY1NDg0YzUxM2M0OTQyNDJlMDlmNS4u
MjM1N2MzMjAyODYzMTJkNDVmNDEzMmE5MzRhZTFjOTE5YzNhMGNhMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEwLTA1LTIxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsIGNhbGxhYmxl
IG9iamVjdHMgc2hvdWxkIGhhdmUgYSBnbG9iYWwgb2JqZWN0IHJlZmVyZW5jZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTUKKworICAgICAgICBV
cGRhdGUgZXhwZWN0ZWQgcmVzdWx0cyBhcyB3ZSBub3cgZ2l2ZSBhbGwgZnVuY3Rpb24gb2JqZWN0
cworICAgICAgICBnZXQgdGhlaXIgcHJvdG90eXBlcyBmcm9tIHRoZSBjb3JyZWN0IGdsb2JhbCBv
YmplY3QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0
ZWQudHh0OgorCiAyMDEwLTA1LTIwICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRl
eCA1NzM3YzQwZGJlYjM3MDkyYzY4NzQ0NzUxMTIyODM5ODMzODM4NGQ2Li41NWExYjYzOTRiZWUx
N2NmYjJmMTNkMTRmZmZjNzlhZDNlOThkZGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTYwNSwzMiAr
NjA1LDMyIEBAIFBBU1MgaW5uZXIuWFBhdGhSZXN1bHQuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlu
bmVyLlhQYXRoUmVzdWx0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5Y
U0xUUHJvY2Vzc29yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5YU0xUUHJvY2Vzc29yLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQotRkFJTCBpbm5lci5hZGRFdmVudExpc3RlbmVyLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuYWRkRXZlbnRMaXN0
ZW5lci5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLmFsZXJ0LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5u
ZXIuYWxlcnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgor
UEFTUyBpbm5lci5hZGRFdmVudExpc3RlbmVyLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5h
ZGRFdmVudExpc3RlbmVyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5h
bGVydC5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuYWxlcnQuY29uc3RydWN0b3IuaXNJbm5l
ciBpcyB0cnVlCiBQQVNTIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUuaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCi1G
QUlMIGlubmVyLmF0b2IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBp
bm5lci5hdG9iLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
LUZBSUwgaW5uZXIuYmx1ci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLmJsdXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgotRkFJTCBpbm5lci5idG9hLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZB
SUwgaW5uZXIuYnRvYS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1GQUlMIGlubmVyLmNhcHR1cmVFdmVudHMuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgotRkFJTCBpbm5lci5jYXB0dXJlRXZlbnRzLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuY2xlYXJJbnRlcnZhbC5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLmNsZWFySW50ZXJ2YWwuY29u
c3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5j
bGVhclRpbWVvdXQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5l
ci5jbGVhclRpbWVvdXQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorUEFTUyBpbm5lci5hdG9iLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5hdG9iLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5ibHVyLmlzSW5uZXIgaXMgdHJ1
ZQorUEFTUyBpbm5lci5ibHVyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5l
ci5idG9hLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5idG9hLmNvbnN0cnVjdG9yLmlzSW5u
ZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5jYXB0dXJlRXZlbnRzLmlzSW5uZXIgaXMgdHJ1ZQorUEFT
UyBpbm5lci5jYXB0dXJlRXZlbnRzLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBp
bm5lci5jbGVhckludGVydmFsLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5jbGVhckludGVy
dmFsLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5jbGVhclRpbWVvdXQu
aXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmNsZWFyVGltZW91dC5jb25zdHJ1Y3Rvci5pc0lu
bmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuY2xpZW50SW5mb3JtYXRpb24uaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1
ZQotRkFJTCBpbm5lci5jbG9zZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIGlubmVyLmNsb3NlLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK1BBU1MgaW5uZXIuY2xvc2UuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmNsb3Nl
LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5jbG9zZWQuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jbG9zZWQuY29uc3RydWN0b3Iu
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5jb25maXJtLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuY29uZmlybS5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGlubmVyLmNv
bmZpcm0uaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmNvbmZpcm0uY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLmNvbnNvbGUuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlu
bmVyLmNvbnNvbGUuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLmRlZmF1
bHRTdGF0dXMuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgpAQCAtNjM5LDI0ICs2
MzksMjQgQEAgRkFJTCBpbm5lci5kZWZhdWx0c3RhdHVzLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuZGVmYXVsdHN0YXR1cy5jb25zdHJ1Y3Rvci5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmRldmljZVBpeGVsUmF0aW8u
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5kZXZpY2VQaXhl
bFJhdGlvLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZB
SUwgaW5uZXIuZGlzcGF0Y2hFdmVudC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
Ci1GQUlMIGlubmVyLmRpc3BhdGNoRXZlbnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5kaXNwYXRjaEV2ZW50LmlzSW5uZXIgaXMgdHJ1
ZQorUEFTUyBpbm5lci5kaXNwYXRjaEV2ZW50LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5kb2N1bWVudC5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuZG9jdW1lbnQu
Y29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCi1GQUlMIGlubmVyLmZpbmQuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5maW5kLmNvbnN0cnVjdG9yLmlzSW5u
ZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuZm9jdXMuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5mb2N1cy5jb25zdHJ1Y3Rvci5p
c0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGlubmVyLmZpbmQuaXNJbm5l
ciBpcyB0cnVlCitQQVNTIGlubmVyLmZpbmQuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQ
QVNTIGlubmVyLmZvY3VzLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5mb2N1cy5jb25zdHJ1
Y3Rvci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuZnJhbWVFbGVtZW50LmlzSW5uZXIgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuZnJhbWVFbGVtZW50LmNvbnN0cnVj
dG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIFBBU1MgaW5uZXIuZnJhbWVz
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5mcmFtZXMuY29uc3RydWN0b3IuaXNJbm5lciBp
cyB0cnVlCi1GQUlMIGlubmVyLmdldENvbXB1dGVkU3R5bGUuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5nZXRDb21wdXRlZFN0eWxlLmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuZ2V0TWF0Y2hlZENT
U1J1bGVzLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuZ2V0
TWF0Y2hlZENTU1J1bGVzLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KLUZBSUwgaW5uZXIuZ2V0U2VsZWN0aW9uLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLUZBSUwgaW5uZXIuZ2V0U2VsZWN0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuZ2V0Q29tcHV0ZWRTdHlsZS5pc0lu
bmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuZ2V0Q29tcHV0ZWRTdHlsZS5jb25zdHJ1Y3Rvci5pc0lu
bmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuZ2V0TWF0Y2hlZENTU1J1bGVzLmlzSW5uZXIgaXMgdHJ1
ZQorUEFTUyBpbm5lci5nZXRNYXRjaGVkQ1NTUnVsZXMuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0
cnVlCitQQVNTIGlubmVyLmdldFNlbGVjdGlvbi5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIu
Z2V0U2VsZWN0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5oaXN0
b3J5LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5oaXN0b3J5LmNvbnN0cnVjdG9yLmlzSW5u
ZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5pbm5lckhlaWdodC5pc0lubmVyIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCkBAIC02NzUsMjAgKzY3NSwyMCBAQCBQQVNTIGlubmVyLmxvY2F0aW9uYmFy
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5sb2NhdGlvbmJhci5jb25zdHJ1Y3Rvci5pc0lu
bmVyIGlzIHRydWUKIFBBU1MgaW5uZXIubWVudWJhci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5u
ZXIubWVudWJhci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKLUZBSUwgaW5uZXIubW92ZUJ5
LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubW92ZUJ5LmNv
bnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIu
bW92ZVRvLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubW92
ZVRvLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
aW5uZXIubW92ZUJ5LmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5tb3ZlQnkuY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLm1vdmVUby5pc0lubmVyIGlzIHRydWUKK1BB
U1MgaW5uZXIubW92ZVRvLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5u
YW1lLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIubmFtZS5j
b25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBQQVNTIGlubmVy
Lm5hdmlnYXRvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIubmF2aWdhdG9yLmNvbnN0cnVj
dG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5vZmZzY3JlZW5CdWZmZXJpbmcuaXNJbm5l
ciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5vZmZzY3JlZW5CdWZmZXJp
bmcuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBp
bm5lci5vcGVuLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIu
b3Blbi5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLm9wZW5EYXRhYmFzZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIGlubmVyLm9wZW5EYXRhYmFzZS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCitQQVNTIGlubmVyLm9wZW4uaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVy
Lm9wZW4uY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLm9wZW5EYXRhYmFz
ZS5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIub3BlbkRhdGFiYXNlLmNvbnN0cnVjdG9yLmlz
SW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5vdXRlckhlaWdodC5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm91dGVySGVpZ2h0LmNvbnN0cnVjdG9yLmlzSW5u
ZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIub3V0ZXJXaWR0aC5pc0lu
bmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCkBAIC02OTksMjAgKzY5OSwyMCBAQCBGQUlM
IGlubmVyLnBhZ2VZT2Zmc2V0LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZB
SUwgaW5uZXIucGFnZVlPZmZzZXQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgogUEFTUyBpbm5lci5wZXJzb25hbGJhci5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
aW5uZXIucGVyc29uYWxiYXIuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCi1GQUlMIGlubmVy
LnBvc3RNZXNzYWdlLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5u
ZXIucG9zdE1lc3NhZ2UuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgotRkFJTCBpbm5lci5wcmludC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
Ci1GQUlMIGlubmVyLnByaW50LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLUZBSUwgaW5uZXIucHJvbXB0LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KLUZBSUwgaW5uZXIucHJvbXB0LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIucmVsZWFzZUV2ZW50cy5pc0lubmVyIHNob3VsZCBi
ZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnJlbGVhc2VFdmVudHMuY29uc3RydWN0b3Iu
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5yZW1vdmVFdmVu
dExpc3RlbmVyLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIu
cmVtb3ZlRXZlbnRMaXN0ZW5lci5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCi1GQUlMIGlubmVyLnJlc2l6ZUJ5LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KLUZBSUwgaW5uZXIucmVzaXplQnkuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5yZXNpemVUby5pc0lubmVyIHNob3VsZCBi
ZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnJlc2l6ZVRvLmNvbnN0cnVjdG9yLmlzSW5u
ZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIucG9zdE1lc3NhZ2UuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnBvc3RNZXNzYWdlLmNvbnN0cnVjdG9yLmlzSW5uZXIg
aXMgdHJ1ZQorUEFTUyBpbm5lci5wcmludC5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIucHJp
bnQuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnByb21wdC5pc0lubmVy
IGlzIHRydWUKK1BBU1MgaW5uZXIucHJvbXB0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQor
UEFTUyBpbm5lci5yZWxlYXNlRXZlbnRzLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5yZWxl
YXNlRXZlbnRzLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5yZW1vdmVF
dmVudExpc3RlbmVyLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5yZW1vdmVFdmVudExpc3Rl
bmVyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5yZXNpemVCeS5pc0lu
bmVyIGlzIHRydWUKK1BBU1MgaW5uZXIucmVzaXplQnkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0
cnVlCitQQVNTIGlubmVyLnJlc2l6ZVRvLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5yZXNp
emVUby5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuc2NyZWVuLmlzSW5u
ZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zY3JlZW4uY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVl
CiBGQUlMIGlubmVyLnNjcmVlbkxlZnQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgpAQCAtNzIzLDEyICs3MjMsMTIgQEAgRkFJTCBpbm5lci5zY3JlZW5YLmlzSW5uZXIgc2hvdWxk
IGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2NyZWVuWC5jb25zdHJ1Y3Rvci5pc0lu
bmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNjcmVlblkuaXNJbm5l
ciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3JlZW5ZLmNvbnN0cnVj
dG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuc2Nyb2xs
LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuc2Nyb2xsLmNv
bnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIu
c2Nyb2xsQnkuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5z
Y3JvbGxCeS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIGlubmVyLnNjcm9sbFRvLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZB
SUwgaW5uZXIuc2Nyb2xsVG8uY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgorUEFTUyBpbm5lci5zY3JvbGwuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnNj
cm9sbC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuc2Nyb2xsQnkuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnNjcm9sbEJ5LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5zY3JvbGxUby5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuc2Ny
b2xsVG8uY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLnNjcm9sbFguaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3JvbGxYLmNvbnN0
cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2Ny
b2xsWS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCkBAIC03MzksMjQgKzczOSwy
NCBAQCBQQVNTIGlubmVyLnNlbGYuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLnNlbGYuY29u
c3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLnNlc3Npb25TdG9yYWdlLmlzSW5u
ZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zZXNzaW9uU3RvcmFnZS5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKLUZBSUwgaW5uZXIuc2V0SW50ZXJ2YWwuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgotRkFJTCBpbm5lci5zZXRJbnRlcnZhbC5jb25zdHJ1Y3Rvci5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnNldFRpbWVvdXQuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zZXRUaW1lb3V0LmNvbnN0cnVj
dG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuc2V0SW50
ZXJ2YWwuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnNldEludGVydmFsLmNvbnN0cnVjdG9y
LmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5zZXRUaW1lb3V0LmlzSW5uZXIgaXMgdHJ1ZQor
UEFTUyBpbm5lci5zZXRUaW1lb3V0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBp
bm5lci5zdGF0dXMuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5l
ci5zdGF0dXMuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgog
UEFTUyBpbm5lci5zdGF0dXNiYXIuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLnN0YXR1c2Jh
ci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKLUZBSUwgaW5uZXIuc3RvcC5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnN0b3AuY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5zdG9wLmlzSW5uZXIg
aXMgdHJ1ZQorUEFTUyBpbm5lci5zdG9wLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFT
UyBpbm5lci5zdHlsZU1lZGlhLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zdHlsZU1lZGlh
LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci50b29sYmFyLmlzSW5uZXIg
aXMgdHJ1ZQogUEFTUyBpbm5lci50b29sYmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQot
RkFJTCBpbm5lci53ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZS5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLndlYmtpdENvbnZlcnRQb2ludEZyb21O
b2RlVG9QYWdlLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
LUZBSUwgaW5uZXIud2Via2l0Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci53ZWJraXRDb252ZXJ0UG9pbnRGcm9t
UGFnZVRvTm9kZS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
CitQQVNTIGlubmVyLndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci53ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZS5jb25zdHJ1
Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIud2Via2l0Q29udmVydFBvaW50RnJvbVBh
Z2VUb05vZGUuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLndlYmtpdENvbnZlcnRQb2ludEZy
b21QYWdlVG9Ob2RlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci53aW5k
b3cuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLndpbmRvdy5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ3YTcyMDgxNGRiM2Zk
NzJjYWM3OWQ3ZDA0ZTI2NTJjYzAxMWJhYS4uYzhhNDVmYmJmNzU3OWMyNmJlNWQ2NzY4NDA4NTYw
YTQyODE0ZjY0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMC0wNS0yMSAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFsbCBjYWxsYWJsZSBvYmplY3RzIHNob3VsZCBoYXZlIGEgZ2xvYmFsIG9iamVjdCBy
ZWZlcmVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM5NDk1CisKKyAgICAgICAgVXBkYXRlIHRoZSBiaW5kaW5ncyBnZW5lcmF0b3IgdG8gZ2l2ZSBw
cm90b3R5cGUgb2JqZWN0cyBhCisgICAgICAgIGdsb2JhbCBvYmplY3QuICBVcGRhdGUgYWxsIHRo
ZSBtYW51YWxseSB3cml0dGVuIEpTT2JqZWN0CisgICAgICAgIHN1YmNsYXNzZXMgdG8gcGFzcyBh
IGdsb2JhbCBvYmplY3QuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlLlBsdWdp
bkhvc3RQcm9jZXNzLmV4cDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hl
bGw6OnNldFdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNCYWNrRnVuY3Rpb25HZXR0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2FjaGluZ1N0YXRpY0ZvcndhcmRGdW5jdGlvbkdldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpub25DYWNoaW5nU3RhdGljR29GdW5jdGlvbkdldHRlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpub25DYWNoaW5nU3RhdGljUmVwbGFjZUZ1bmN0aW9uR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNSZWxvYWRGdW5jdGlvbkdldHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpub25DYWNoaW5nU3RhdGljQXNzaWduRnVuY3Rpb25HZXR0ZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYnJpZGdlL2MvQ1J1
bnRpbWVPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVPYmplY3Q6
OkNSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKiBicmlkZ2UvYy9DUnVudGltZU9iamVjdC5oOgor
ICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Q0luc3RhbmNlOjpuZXdSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OkNSdW50aW1lTWV0aG9kOjpDUnVudGltZU1ldGhvZCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpDSW5zdGFuY2U6OmdldE1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YUlu
c3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFJbnN0YW5jZTo6bmV3UnVudGltZU9iamVjdCk6
CisgICAgICAgIChKYXZhUnVudGltZU1ldGhvZDo6SmF2YVJ1bnRpbWVNZXRob2QpOgorICAgICAg
ICAoSmF2YUluc3RhbmNlOjpnZXRNZXRob2QpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0ph
dmFSdW50aW1lT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFSdW50aW1l
T2JqZWN0OjpKYXZhUnVudGltZU9iamVjdCk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2
YVJ1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKiBicmlkZ2UvanNjL0JyaWRnZUpTQy5jcHA6Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZTo6bmV3UnVudGltZU9iamVjdCk6CisgICAg
ICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKiBicmlkZ2Uv
b2JqYy9PYmpDUnVudGltZU9iamVjdC5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iakNS
dW50aW1lT2JqZWN0OjpPYmpDUnVudGltZU9iamVjdCk6CisgICAgICAgICogYnJpZGdlL29iamMv
b2JqY19jbGFzcy5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNDbGFzczo6ZmFsbGJh
Y2tPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAg
ICAgIChPYmpjSW5zdGFuY2U6Om5ld1J1bnRpbWVPYmplY3QpOgorICAgICAgICAoT2JqQ1J1bnRp
bWVNZXRob2Q6Ok9iakNSdW50aW1lTWV0aG9kKToKKyAgICAgICAgKE9iamNJbnN0YW5jZTo6Z2V0
TWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpP
YmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdEltcCk6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6
UnVudGltZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OlJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X29iamVjdC5oOgorCiAyMDEwLTA1LTIwICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
LmggYi9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY0OWIxNjFjYmM0YzVjOTU2NDUzZjkyNWJhNjQ2NzdjNWZh
YjFkMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2Vi
Q29yZV9GV0RfSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0Rf
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLlBsdWdpbkhvc3RQcm9jZXNzLmV4cCBiL1dlYkNvcmUvV2ViQ29yZS5QbHVnaW5Ib3N0UHJv
Y2Vzcy5leHAKaW5kZXggZDNjNDE3ODZlMWUwOTgwMTlmNTU3NTIxMTZjYmQ5ZDViNWIzNjE3Ny4u
MzA4ZDBmMjc2NDk3ZjQyM2JkZThjMTc1MjAwZmQ5MWMzZjA1MjZhNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLlBsdWdpbkhvc3RQcm9jZXNzLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUu
UGx1Z2luSG9zdFByb2Nlc3MuZXhwCkBAIC00LDggKzQsNyBAQCBfX1pOM0pTQzEzUnVudGltZU1l
dGhvZDExZ2V0Q2FsbERhdGFFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9k
MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5T
XzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5
RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0
eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCi1fX1pOM0pTQzEz
UnVudGltZU1ldGhvZEMxRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOM1dURjZW
ZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCi1fX1pOM0pTQzEzUnVudGltZU1ldGhv
ZEMyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOM1dURjZWZWN0b3JJUE5TXzhC
aW5kaW5nczZNZXRob2RFTG0wRUVFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU185RXhl
Y1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVJLTlNfMTBJZGVudGlmaWVyRVJOM1dURjZWZWN0
b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9i
amVjdEQxRXYKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVS
TlNfOENhbGxEYXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0ZVBy
b3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQpAQCAtMTUsNyArMTQsNyBA
QCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQ
TlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmpl
Y3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGlt
ZU9iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVF
Uk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3Q2
c19pbmZvRQotX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3RDMkVQTlNfOUV4ZWNTdGF0
ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfOEluc3RhbmNlRUVFCitfX1pOM0pTQzhCaW5kaW5nczEz
UnVudGltZU9iamVjdEMyRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RU4zV1RG
MTBQYXNzUmVmUHRySU5TMF84SW5zdGFuY2VFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1l
T2JqZWN0RDJFdgogX19aTjNKU0M4QmluZGluZ3M4SW5zdGFuY2UxOWNyZWF0ZVJ1bnRpbWVPYmpl
Y3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzhCaW5kaW5nczhJbnN0YW5jZUMyRU4zV1RGMTBQ
YXNzUmVmUHRySU5TMF8xMFJvb3RPYmplY3RFRUUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmNwcAppbmRleCBhNGMzZDZhZjI3ODE1ZTM0ZjMxMzMwZjkxMWEzODZkZjUxNTRiNWY1Li44N2Q4
Y2Y3ODkwMDlmYzIzZDlhMGE2MmJjNmRjZDQxOTM3NzdhNmFjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuY3BwCkBAIC02ODYsNyArNjg2LDcgQEAgS1VSTCBjb21wbGV0ZVVSTChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCiAKIEpTVmFsdWUgb2JqZWN0
VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm90b3R5
cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAwLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFByb3RvRnVuY1Rv
U3RyaW5nKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIHByb3BlcnR5TmFtZSwgb2JqZWN0
UHJvdG9GdW5jVG9TdHJpbmcpOwogfQogCiBTdHJ1Y3R1cmUqIGdldENhY2hlZERPTVN0cnVjdHVy
ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBDbGFzc0luZm8qIGNsYXNz
SW5mbykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggNjU2
ZDU4MDJkZDExMDRiNjUwMWVhYTRhYjY5MjUwMjIzZDk4MGE2ZS4uMzQzYzhmOTY5NmVhYTU2YWMx
MWI3YjI2Yzc4NjcwNzhiZTZjZjk1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIEpTRE9NV2luZG93OjptYXJrQ2hp
bGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCiB0ZW1wbGF0ZTxOYXRpdmVGdW5jdGlvbiBuYXRp
dmVGdW5jdGlvbiwgaW50IGxlbmd0aD4KIEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9u
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQogewotICAgIHJldHVybiBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0
dXJlKCksIGxlbmd0aCwgcHJvcGVydHlOYW1lLCBuYXRpdmVGdW5jdGlvbik7CisgICAgcmV0dXJu
IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm90b3R5cGVGdW5jdGlv
blN0cnVjdHVyZSgpLCBsZW5ndGgsIHByb3BlcnR5TmFtZSwgbmF0aXZlRnVuY3Rpb24pOwogfQog
CiBzdGF0aWMgSlNWYWx1ZSBjaGlsZEZyYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMWU4MmE0OTNkMjUyM2ZiNzkwMWZlMWQ2
ZTFjNTFjODliNTViZWExMi4uNjUwOTZiOTNjMDZkODM3YTQxNGFkN2E4M2ZiNmE2MTlkMjE3ZmFm
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC02MSwxMCAr
NjEsMTEgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZlB0cjxET01X
aW5kb3c+IGRvbVdpbmRvdykKICAgICAvLyB3aGVuIHdlIGFsbG9jYXRlIHRoZSBnbG9iYWwgb2Jq
ZWN0LiAoT25jZSB0aGUgZ2xvYmFsIG9iamVjdCBpcyBmdWxseQogICAgIC8vIGNvbnN0cnVjdGVk
LCBpdCBjYW4gbWFyayBpdHMgb3duIHByb3RvdHlwZS4pCiAgICAgUmVmUHRyPFN0cnVjdHVyZT4g
cHJvdG90eXBlU3RydWN0dXJlID0gSlNET01XaW5kb3dQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZShqc051bGwoKSk7Ci0gICAgUHJvdGVjdGVkUHRyPEpTRE9NV2luZG93UHJvdG90eXBlPiBwcm90
b3R5cGUgPSBuZXcgSlNET01XaW5kb3dQcm90b3R5cGUocHJvdG90eXBlU3RydWN0dXJlLnJlbGVh
c2UoKSk7CisgICAgUHJvdGVjdGVkUHRyPEpTRE9NV2luZG93UHJvdG90eXBlPiBwcm90b3R5cGUg
PSBuZXcgSlNET01XaW5kb3dQcm90b3R5cGUoMCwgcHJvdG90eXBlU3RydWN0dXJlLnJlbGVhc2Uo
KSk7CiAKICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3Jl
YXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CiAgICAgSlNET01XaW5kb3cqIGpzRE9NV2luZG93ID0g
bmV3IChKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpIEpTRE9NV2luZG93KHN0cnVj
dHVyZS5yZWxlYXNlKCksIGRvbVdpbmRvdywgdGhpcyk7CisgICAgcHJvdG90eXBlLT5wdXRBbm9u
eW1vdXNWYWx1ZSgwLCBqc0RPTVdpbmRvdyk7CiAgICAgc2V0V2luZG93KGpzRE9NV2luZG93KTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwCmluZGV4IGMwMzFiMzBh
YzljMTJkYjI2OTk1ZjkxNmNmOTI1YTBlNmE2N2Q3OTIuLjUzYjU1NGZjNmMxMTRjZTJhYmZjYzA3
NDI4NTUyNTUxM2UyYWE4NjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0
b3J5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5j
cHAKQEAgLTQwLDE3ICs0MCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBKU1Zh
bHVlIG5vbkNhY2hpbmdTdGF0aWNCYWNrRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIG5l
dyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgcHJvcGVydHlOYW1lLCBq
c0hpc3RvcnlQcm90b3R5cGVGdW5jdGlvbkJhY2spOworICAgIHJldHVybiBuZXcgKGV4ZWMpIE5h
dGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwg
MCwgcHJvcGVydHlOYW1lLCBqc0hpc3RvcnlQcm90b3R5cGVGdW5jdGlvbkJhY2spOwogfQogCiBz
dGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRm9yd2FyZEZ1bmN0aW9uR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewot
ICAgIHJldHVybiBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIHBy
b3BlcnR5TmFtZSwganNIaXN0b3J5UHJvdG90eXBlRnVuY3Rpb25Gb3J3YXJkKTsKKyAgICByZXR1
cm4gbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0
aW9uU3RydWN0dXJlKCksIDAsIHByb3BlcnR5TmFtZSwganNIaXN0b3J5UHJvdG90eXBlRnVuY3Rp
b25Gb3J3YXJkKTsKIH0KIAogc3RhdGljIEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0dvRnVuY3Rp
b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVy
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1
Y3R1cmUoKSwgMSwgcHJvcGVydHlOYW1lLCBqc0hpc3RvcnlQcm90b3R5cGVGdW5jdGlvbkdvKTsK
KyAgICByZXR1cm4gbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3Rv
dHlwZUZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIHByb3BlcnR5TmFtZSwganNIaXN0b3J5UHJvdG90
eXBlRnVuY3Rpb25Hbyk7CiB9CiAKIGJvb2wgSlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eVNsb3RE
ZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5j
cHAKaW5kZXggZTkyYTc1MDY4ZjY2NjJjMzYyNzQyNjI1YzU0NWUzZDFkZTA5YmMzNi4uZGEzNWMy
MzRiNGU2Y2YyOTVlMmU5MmE2YjQ0MGY0ZmZiMmQ2YzYzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC00MSwxNyArNDEsMTcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljUmVwbGFjZUZ1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQogewotICAgIHJldHVybiBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVj
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJl
KCksIDEsIHByb3BlcnR5TmFtZSwganNMb2NhdGlvblByb3RvdHlwZUZ1bmN0aW9uUmVwbGFjZSk7
CisgICAgcmV0dXJuIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm90
b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBwcm9wZXJ0eU5hbWUsIGpzTG9jYXRpb25Qcm90
b3R5cGVGdW5jdGlvblJlcGxhY2UpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljUmVsb2FkRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgTmF0aXZl
RnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgcHJvcGVydHlOYW1lLCBqc0xvY2F0aW9uUHJvdG90
eXBlRnVuY3Rpb25SZWxvYWQpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9u
V3JhcHBlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgcHJvcGVydHlO
YW1lLCBqc0xvY2F0aW9uUHJvdG90eXBlRnVuY3Rpb25SZWxvYWQpOwogfQogCiBzdGF0aWMgSlNW
YWx1ZSBub25DYWNoaW5nU3RhdGljQXNzaWduRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJu
IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgcHJvcGVydHlOYW1l
LCBqc0xvY2F0aW9uUHJvdG90eXBlRnVuY3Rpb25Bc3NpZ24pOworICAgIHJldHVybiBuZXcgKGV4
ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUoKSwgMSwgcHJvcGVydHlOYW1lLCBqc0xvY2F0aW9uUHJvdG90eXBlRnVuY3Rpb25Bc3NpZ24p
OwogfQogCiBib29sIEpTTG9jYXRpb246OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cAppbmRleCA4NWQ2ODYxOWYzZGJiNTBmOWYyNWQ5MTMyODM4ZjkxZmRmZTlmZDdiLi4xZDQ1ZGZh
ZGZkOTViMzE3MTMzYTQ3MzRhYmIxZWQyNmQ0MGZmN2RjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTcxLDIyICs3MSwyNiBAQCB2b2lk
IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoKQogICAgIC8vIHdoZW4gd2UgYWxs
b2NhdGUgdGhlIGdsb2JhbCBvYmplY3QuIChPbmNlIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGZ1bGx5
CiAgICAgLy8gY29uc3RydWN0ZWQsIGl0IGNhbiBtYXJrIGl0cyBvd24gcHJvdG90eXBlLikKICAg
ICBSZWZQdHI8U3RydWN0dXJlPiB3b3JrZXJDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlID0gSlNX
b3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpOwotICAgIFBy
b3RlY3RlZFB0cjxKU1dvcmtlckNvbnRleHRQcm90b3R5cGU+IHdvcmtlckNvbnRleHRQcm90b3R5
cGUgPSBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQoKSkgSlNXb3JrZXJDb250ZXh0UHJvdG90eXBlKHdv
cmtlckNvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKTsKKyAgICBQcm90ZWN0ZWRQ
dHI8SlNXb3JrZXJDb250ZXh0UHJvdG90eXBlPiB3b3JrZXJDb250ZXh0UHJvdG90eXBlID0gbmV3
IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTV29ya2VyQ29udGV4dFByb3RvdHlwZSgwLCB3b3JrZXJD
b250ZXh0UHJvdG90eXBlU3RydWN0dXJlLnJlbGVhc2UoKSk7CiAKICAgICBpZiAobV93b3JrZXJD
b250ZXh0LT5pc0RlZGljYXRlZFdvcmtlckNvbnRleHQoKSkgewogICAgICAgICBSZWZQdHI8U3Ry
dWN0dXJlPiBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlID0gSlNEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUod29ya2VyQ29udGV4dFByb3Rv
dHlwZSk7Ci0gICAgICAgIFByb3RlY3RlZFB0cjxKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90
b3R5cGU+IGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUgPSBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQo
KSkgSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlKGRlZGljYXRlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKTsKKyAgICAgICAgUHJvdGVjdGVkUHRyPEpTRGVkaWNh
dGVkV29ya2VyQ29udGV4dFByb3RvdHlwZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZSA9IG5l
dyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90b3R5cGUo
MCwgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNlKCkpOwogICAgICAg
ICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHQ6
OmNyZWF0ZVN0cnVjdHVyZShkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlKTsKIAogICAgICAgICBt
X3dvcmtlckNvbnRleHRXcmFwcGVyID0gbmV3IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTRGVkaWNh
dGVkV29ya2VyQ29udGV4dChzdHJ1Y3R1cmUucmVsZWFzZSgpLCBtX3dvcmtlckNvbnRleHQtPnRv
RGVkaWNhdGVkV29ya2VyQ29udGV4dCgpKTsKKyAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlw
ZS0+cHV0QW5vbnltb3VzVmFsdWUoMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CisgICAgICAg
IGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKDAsIG1fd29ya2Vy
Q29udGV4dFdyYXBwZXIpOwogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAgICB9IGVsc2Ug
ewogICAgICAgICBBU1NFUlQobV93b3JrZXJDb250ZXh0LT5pc1NoYXJlZFdvcmtlckNvbnRleHQo
KSk7CiAgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHNoYXJlZENvbnRleHRQcm90b3R5cGVTdHJ1
Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh3
b3JrZXJDb250ZXh0UHJvdG90eXBlKTsKLSAgICAgICAgUHJvdGVjdGVkUHRyPEpTU2hhcmVkV29y
a2VyQ29udGV4dFByb3RvdHlwZT4gc2hhcmVkQ29udGV4dFByb3RvdHlwZSA9IG5ldyAobV9nbG9i
YWxEYXRhLmdldCgpKSBKU1NoYXJlZFdvcmtlckNvbnRleHRQcm90b3R5cGUoc2hhcmVkQ29udGV4
dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNlKCkpOworICAgICAgICBQcm90ZWN0ZWRQdHI8SlNT
aGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlPiBzaGFyZWRDb250ZXh0UHJvdG90eXBlID0gbmV3
IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTU2hhcmVkV29ya2VyQ29udGV4dFByb3RvdHlwZSgwLCBz
aGFyZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlLnJlbGVhc2UoKSk7CiAgICAgICAgIFJlZlB0
cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3Ry
dWN0dXJlKHNoYXJlZENvbnRleHRQcm90b3R5cGUpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4
dFdyYXBwZXIgPSBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0
KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29ya2VyQ29udGV4dC0+dG9TaGFyZWRXb3JrZXJDb250
ZXh0KCkpOworICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1
ZSgwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsKKyAgICAgICAgc2hhcmVkQ29udGV4dFByb3Rv
dHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CiAjZW5k
aWYKICAgICB9CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCA1MTcwMmVjNDhlNTBjMGMxZjkxOGQ4OTFkNGJlNzExODJjOTg1MzUwLi5hNDE1OGI4
YTZiZTZiZmVjYjA0NDE3MWNlMzU1Y2E2NDIzODI4Mzk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTY0Myw2ICs2NDMsOCBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKICAgICBpZiAoJGhhc1BhcmVudCAmJiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CiAgICAgICAgICRoZWFkZXJJbmNs
dWRlc3siJGltcGxDbGFzc05hbWUuaCJ9ID0gMTsKICAgICB9CisgICAgCisgICAgJGhlYWRlcklu
Y2x1ZGVzeyI8cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4ifSA9IDE7CiAKICAg
ICAkaGVhZGVySW5jbHVkZXN7IlNWR0VsZW1lbnQuaCJ9ID0gMSBpZiAkY2xhc3NOYW1lID1+IC9e
SlNTVkcvOwogCkBAIC05MzUsOCArOTM3LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAj
IEFkZCBwcm90b3R5cGUgZGVjbGFyYXRpb24uCiAgICAgJXN0cnVjdHVyZUZsYWdzID0gKCk7Ci0g
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICR7Y2xhc3NOYW1lfVByb3RvdHlwZSA6IHB1
YmxpYyBKU0M6OkpTT2JqZWN0IHtcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
dHlwZWRlZiBKU0M6OkpTT2JqZWN0IEJhc2U7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiY2xhc3MgJHtjbGFzc05hbWV9UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0IHtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdHlwZWRl
ZiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlO1xuIik7CiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9N
V2luZG93IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQqIG9wZXJh
dG9yIG5ldyhzaXplX3QpO1xuIik7CkBAIC05NzAsNyArOTcyLDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgIyBDdXN0b20gZGVmaW5lR2V0dGVyIGZ1bmN0aW9uCiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRl
ckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRlciJ9OwogCi0gICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUoTm9uTnVsbFBhc3NS
ZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0KHN0cnVjdHVy
ZSkgeyB9XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpIHsgfVxuIik7CiAKICAgICAjIHN0cnVjdHVy
ZSBmbGFncwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcm90ZWN0ZWQ6XG4iKTsKQEAgLTE0
NDAsOSArMTQ0Miw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6Y3JlYXRlUHJvdG90eXBlKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBpZiAoJGhhc1BhcmVudCAmJiAk
cGFyZW50Q2xhc3NOYW1lIG5lICJKU0M6OkRPTU5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVjKSAke2NsYXNzTmFtZX1Qcm90
b3R5cGUoJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoJHtwYXJlbnRDbGFz
c05hbWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05h
bWV9UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUoJHtwYXJlbnRDbGFzc05hbWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9i
amVjdCkpKTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBlKCR7Y2xh
c3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFz
c05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90
b3R5cGUoKSkpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmpl
Y3QuY3BwIGIvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAKaW5kZXggNDc0MjVh
MjBiYWY4OTJlY2RlMmVlMTgwMjA5MWZhNWUwOTg1OTJhMC4uNGJlNDk4MmFkZDBkZmJkMjAzZmY0
MjZiMTlhZTk2MWYzNjJmMDcxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGlt
ZU9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAKQEAg
LTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAogY29uc3QgQ2xhc3NJbmZvIENS
dW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJDUnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0
OjpzX2luZm8sIDAsIDAgfTsKIAotQ1J1bnRpbWVPYmplY3Q6OkNSdW50aW1lT2JqZWN0KEV4ZWNT
dGF0ZSogZXhlYywgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGluc3RhbmNlKQotICAgIDogUnVudGlt
ZU9iamVjdChleGVjLCBpbnN0YW5jZSkKK0NSdW50aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdChF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8
Q0luc3RhbmNlPiBpbnN0YW5jZSkKKyAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBpbnN0YW5jZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvYy9DUnVu
dGltZU9iamVjdC5oIGIvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IGI1
MzM4N2E4MWJlMjQ3NzcyMDkxZGIxZDE1ZjExOTFjMTk0YmM0ZjQuLmJjZDM5ZDNlZjhjNDA1NmZi
NTQ2NDE3NDcyZTc3Yjc3YWU5MzUzYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL2MvQ1J1
bnRpbWVPYmplY3QuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKQEAg
LTM3LDcgKzM3LDcgQEAgY2xhc3MgQ0luc3RhbmNlOwogCiBjbGFzcyBDUnVudGltZU9iamVjdCA6
IHB1YmxpYyBSdW50aW1lT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBDUnVudGltZU9iamVjdChFeGVj
U3RhdGUqLCBQYXNzUmVmUHRyPENJbnN0YW5jZT4pOworICAgIENSdW50aW1lT2JqZWN0KEV4ZWNT
dGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxDSW5zdGFuY2U+KTsKICAgICB2aXJ0
dWFsIH5DUnVudGltZU9iamVjdCgpOwogCiAgICAgQ0luc3RhbmNlKiBnZXRJbnRlcm5hbENJbnN0
YW5jZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNw
cCBiL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKaW5kZXggN2RiYzFkOWVlMmNhMWY1
YzMzOTc4ZmQ1ZGFiYmFhN2NiZGU3YTU2ZC4uZTk4NTA1OTg2MTk5NDI4NzdkOWM4N2E0MDIzMjQ2
NGExMGVmMDkwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAor
KysgYi9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC05Myw3ICs5Myw3IEBAIENJ
bnN0YW5jZTo6fkNJbnN0YW5jZSgpCiAKIFJ1bnRpbWVPYmplY3QqIENJbnN0YW5jZTo6bmV3UnVu
dGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgQ1J1
bnRpbWVPYmplY3QoZXhlYywgdGhpcyk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgQ1J1bnRpbWVP
YmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0aGlzKTsKIH0KIAogQ2xh
c3MgKkNJbnN0YW5jZTo6Z2V0Q2xhc3MoKSBjb25zdApAQCAtMTEwLDggKzExMCw4IEBAIGJvb2wg
Q0luc3RhbmNlOjpzdXBwb3J0c0ludm9rZURlZmF1bHRNZXRob2QoKSBjb25zdAogCiBjbGFzcyBD
UnVudGltZU1ldGhvZCA6IHB1YmxpYyBSdW50aW1lTWV0aG9kIHsKIHB1YmxpYzoKLSAgICBDUnVu
dGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRp
bmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgbmFt
ZSwgbGlzdCkKKyAgICBDUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRo
b2RMaXN0JiBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0
LCBuYW1lLCBsaXN0KQogICAgIHsKICAgICB9CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBjb25zdCBD
bGFzc0luZm8gQ1J1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIkNSdW50aW1lTWV0aG9kIiwgJlJ1
bnRpbWVNZXRob2Q6OnNfaQogSlNWYWx1ZSBDSW5zdGFuY2U6OmdldE1ldGhvZChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBNZXRob2RMaXN0
IG1ldGhvZExpc3QgPSBnZXRDbGFzcygpLT5tZXRob2RzTmFtZWQocHJvcGVydHlOYW1lLCB0aGlz
KTsKLSAgICByZXR1cm4gbmV3IChleGVjKSBDUnVudGltZU1ldGhvZChleGVjLCBwcm9wZXJ0eU5h
bWUsIG1ldGhvZExpc3QpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIENSdW50aW1lTWV0aG9kKGV4
ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBtZXRob2RMaXN0
KTsKIH0KIAogSlNWYWx1ZSBDSW5zdGFuY2U6Omludm9rZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMs
IFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNZXRob2QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKaW5kZXggOTU3N2YxNzkwNzE4
ZjE5NjhlZGZmMDk2NmQ2NWE4ODkzNGYyNDAzMS4uYmE2OGI3YWI0NmNmYjZiMzFmOTlhYjk0Njg0
NDYwNDcxNjk3ZjE2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5z
dGFuY2VKU0MuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlND
LmNwcApAQCAtNjAsNyArNjAsNyBAQCBKYXZhSW5zdGFuY2U6On5KYXZhSW5zdGFuY2UoKQogCiBS
dW50aW1lT2JqZWN0KiBKYXZhSW5zdGFuY2U6Om5ld1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIHJldHVybiBuZXcgKGV4ZWMpIEphdmFSdW50aW1lT2JqZWN0KGV4ZWMsIHRo
aXMpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIEphdmFSdW50aW1lT2JqZWN0KGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgdGhpcyk7CiB9CiAKICNkZWZpbmUgTlVNX0xPQ0FMX1JF
RlMgNjQKQEAgLTExMyw4ICsxMTMsOCBAQCBKU1ZhbHVlIEphdmFJbnN0YW5jZTo6Ym9vbGVhblZh
bHVlKCkgY29uc3QKIAogY2xhc3MgSmF2YVJ1bnRpbWVNZXRob2QgOiBwdWJsaWMgUnVudGltZU1l
dGhvZCB7CiBwdWJsaWM6Ci0gICAgSmF2YVJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAg
ICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIG5hbWUsIGxpc3QpCisgICAgSmF2YVJ1bnRpbWVNZXRo
b2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAgICAgOiBS
dW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZSwgbGlzdCkKICAgICB7CiAgICAg
fQogCkBAIC0xMjgsNyArMTI4LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEphdmFSdW50aW1lTWV0aG9k
OjpzX2luZm8gPSB7ICJKYXZhUnVudGltZU1ldGhvZCIsICZSdW50aW1lTWV0aG8KIEpTVmFsdWUg
SmF2YUluc3RhbmNlOjpnZXRNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgTWV0aG9kTGlzdCBtZXRob2RMaXN0ID0gZ2V0Q2xhc3Mo
KS0+bWV0aG9kc05hbWVkKHByb3BlcnR5TmFtZSwgdGhpcyk7Ci0gICAgcmV0dXJuIG5ldyAoZXhl
YykgSmF2YVJ1bnRpbWVNZXRob2QoZXhlYywgcHJvcGVydHlOYW1lLCBtZXRob2RMaXN0KTsKKyAg
ICByZXR1cm4gbmV3IChleGVjKSBKYXZhUnVudGltZU1ldGhvZChleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgbWV0aG9kTGlzdCk7CiB9CiAKIEpTVmFsdWUg
SmF2YUluc3RhbmNlOjppbnZva2VNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9k
KiBydW50aW1lTWV0aG9kLCBjb25zdCBBcmdMaXN0ICZhcmdzKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAgYi9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcAppbmRleCBkYzU4YjcxZDEzOGM1ODQwNWQ0MGRk
ZmNmNWM5M2RhZjRkYjQ4MzRmLi42MjcwZjlmZDQzNTNmMzJiYjgzOTM1ZDQ3MTM0ZTI0MzhkNDA4
NGQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0
LmNwcAorKysgYi9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcApA
QCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjb25zdCBDbGFzc0luZm8g
SmF2YVJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIkphdmFSdW50aW1lT2JqZWN0IiwgJlJ1bnRp
bWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1KYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRp
bWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gaW5zdGFu
Y2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGluc3RhbmNlKQorSmF2YVJ1bnRpbWVPYmpl
Y3Q6OkphdmFSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGluc3RhbmNlKQorICAgIDogUnVu
dGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKQogewogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKaW5kZXggZDliZjY5M2RjMzQ4NGY1
YjljOTcxYjAyMjJhODA3ODk1YzI2YmRjZC4uMGU0MDBmNDdjNzBmN2YyNmRjOTYzMDRkOGFkYTJk
M2U1MDIzNGU3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGlt
ZU9iamVjdC5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3Qu
aApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBKYXZhSW5zdGFuY2U7CiAKIGNsYXNzIEphdmFSdW50
aW1lT2JqZWN0IDogcHVibGljIFJ1bnRpbWVPYmplY3QgewogcHVibGljOgotICAgIEphdmFSdW50
aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8SmF2YUluc3RhbmNlPik7CisgICAgSmF2
YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPEph
dmFJbnN0YW5jZT4pOwogICAgIHZpcnR1YWwgfkphdmFSdW50aW1lT2JqZWN0KCk7CiAKICAgICBK
YXZhSW5zdGFuY2UqIGdldEludGVybmFsSmF2YUluc3RhbmNlKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmNwcCBiL1dlYkNvcmUvYnJpZGdlL2pzYy9C
cmlkZ2VKU0MuY3BwCmluZGV4IDNkOGY2MmRhOGQ4ZGEzNDkxZWRkNzIzZmI0ZWIzNDQyNmQzNmRi
MTEuLmQ0NGNkYjU2MjkzMTEyYTQ0MjY0YzRlNTA4Y2ExOTNjNWUzNDQ0N2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL2pz
Yy9CcmlkZ2VKU0MuY3BwCkBAIC05OCw3ICs5OCw3IEBAIFJ1bnRpbWVPYmplY3QqIEluc3RhbmNl
OjpjcmVhdGVSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIFJ1bnRpbWVPYmplY3QqIElu
c3RhbmNlOjpuZXdSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0xvY2sg
bG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIHJldHVybiBuZXcgKGV4ZWMpUnVudGlt
ZU9iamVjdChleGVjLCB0aGlzKTsKKyAgICByZXR1cm4gbmV3IChleGVjKVJ1bnRpbWVPYmplY3Qo
ZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0aGlzKTsKIH0KIAogdm9pZCBJbnN0
YW5jZTo6d2lsbERlc3Ryb3lSdW50aW1lT2JqZWN0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJp
ZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1
bnRpbWVPYmplY3QuaAppbmRleCA1YzQ0MTU3YThjOTdiYmU5NTBjMTgzNjliNDFhYzRiMzIzNGZh
OTRhLi43ODU1MGI5NjVkZDg4N2ZhNmVjZjFkMWQyMmRlMDdjN2UxZjA5MzI4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKKysrIGIvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIE9i
amNJbnN0YW5jZTsKIAogY2xhc3MgT2JqQ1J1bnRpbWVPYmplY3QgOiBwdWJsaWMgUnVudGltZU9i
amVjdCB7CiBwdWJsaWM6Ci0gICAgT2JqQ1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgUGFzc1Jl
ZlB0cjxPYmpjSW5zdGFuY2U+KTsKKyAgICBPYmpDUnVudGltZU9iamVjdChFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8T2JqY0luc3RhbmNlPik7CiAgICAgdmlydHVhbCB+
T2JqQ1J1bnRpbWVPYmplY3QoKTsKIAogICAgIE9iamNJbnN0YW5jZSogZ2V0SW50ZXJuYWxPYmpD
SW5zdGFuY2UoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1
bnRpbWVPYmplY3QubW0gYi9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1t
CmluZGV4IGM3YzRlOTg2MTQ4NzRlYzIxZDViMzMzNzU2OTQyOTc3YzljZjAwYTEuLmQ5YWZkZjJi
NTYwZTQxYjIxNWYwYjJmNDU0ZDhlYmRiZGY2M2Q4NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJp
ZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QubW0KKysrIGIvV2ViQ29yZS9icmlkZ2Uvb2JqYy9P
YmpDUnVudGltZU9iamVjdC5tbQpAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3Mg
ewogCiBjb25zdCBDbGFzc0luZm8gT2JqQ1J1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIk9iakNS
dW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1PYmpDUnVu
dGltZU9iamVjdDo6T2JqQ1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRy
PE9iamNJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGluc3Rh
bmNlKQorT2JqQ1J1bnRpbWVPYmplY3Q6Ok9iakNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxPYmpjSW5zdGFuY2U+
IGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3Rh
bmNlKQogewogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3Mu
bW0gYi9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KaW5kZXggNWYzNjc3ZTYwYjE2
ZGQ5YjkyZDIyNTZhMjBmZDcxYzdkZTA4NTliMi4uNjJmMGEzNGRmNjY2ZWVjMjA1Y2NjMjZjZjcy
MWQ5ZmIzNTNjMGE0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNz
Lm1tCisrKyBiL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbQpAQCAtMjQ2LDcgKzI0
Niw3IEBAIEpTVmFsdWUgT2JqY0NsYXNzOjpmYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgSWRlCiAgICAgCiAgICAgaWYgKCFbdGFyZ2V0T2Jq
ZWN0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW52b2tlVW5kZWZpbmVkTWV0aG9kRnJv
bVdlYlNjcmlwdDp3aXRoQXJndW1lbnRzOildKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICByZXR1cm4gbmV3IChleGVjKSBPYmpjRmFsbGJhY2tPYmplY3RJbXAoZXhlYywgb2Jq
Y0luc3RhbmNlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIE9iamNGYWxs
YmFja09iamVjdEltcChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIG9iamNJbnN0
YW5jZSwgcHJvcGVydHlOYW1lKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX2luc3RhbmNlLm1tIGIvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNl
Lm1tCmluZGV4IGRlMzMwYWVlYTg5ZGExMzU2ZTc2YTdmNTlmMTUyNGJkYTFhMDY2ZjYuLmQ3NWE3
NTg4ZWI2N2E0NTFhNThlYWZkZTMyOGVmMTIwODFiYWQwMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQorKysgYi9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfaW5zdGFuY2UubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIE5TTWFwVGFibGUgKmNyZWF0
ZUluc3RhbmNlV3JhcHBlckNhY2hlKCkKIAogUnVudGltZU9iamVjdCogT2JqY0luc3RhbmNlOjpu
ZXdSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1cm4gbmV3IChleGVj
KSBPYmpDUnVudGltZU9iamVjdChleGVjLCB0aGlzKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBP
YmpDUnVudGltZU9iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHRoaXMp
OwogfQogCiB2b2lkIE9iamNJbnN0YW5jZTo6c2V0R2xvYmFsRXhjZXB0aW9uKE5TU3RyaW5nKiBl
eGNlcHRpb24sIEpTR2xvYmFsT2JqZWN0KiBleGNlcHRpb25FbnZpcm9ubWVudCkKQEAgLTE3Niw4
ICsxNzYsOCBAQCBib29sIE9iamNJbnN0YW5jZTo6c3VwcG9ydHNJbnZva2VEZWZhdWx0TWV0aG9k
KCkgY29uc3QKIAogY2xhc3MgT2JqQ1J1bnRpbWVNZXRob2QgOiBwdWJsaWMgUnVudGltZU1ldGhv
ZCB7CiBwdWJsaWM6Ci0gICAgT2JqQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAg
OiBSdW50aW1lTWV0aG9kKGV4ZWMsIG5hbWUsIGxpc3QpCisgICAgT2JqQ1J1bnRpbWVNZXRob2Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKKyAgICAgICAgOiBSdW50
aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZSwgbGlzdCkKICAgICB7CiAgICAgfQog
CkBAIC0xOTEsNyArMTkxLDcgQEAgY29uc3QgQ2xhc3NJbmZvIE9iakNSdW50aW1lTWV0aG9kOjpz
X2luZm8gPSB7ICJPYmpDUnVudGltZU1ldGhvZCIsICZSdW50aW1lTWV0aG8KIEpTVmFsdWUgT2Jq
Y0luc3RhbmNlOjpnZXRNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpCiB7CiAgICAgTWV0aG9kTGlzdCBtZXRob2RMaXN0ID0gZ2V0Q2xhc3MoKS0+
bWV0aG9kc05hbWVkKHByb3BlcnR5TmFtZSwgdGhpcyk7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykg
T2JqQ1J1bnRpbWVNZXRob2QoZXhlYywgcHJvcGVydHlOYW1lLCBtZXRob2RMaXN0KTsKKyAgICBy
ZXR1cm4gbmV3IChleGVjKSBPYmpDUnVudGltZU1ldGhvZChleGVjLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgbWV0aG9kTGlzdCk7CiB9CiAKIEpTVmFsdWUgT2Jq
Y0luc3RhbmNlOjppbnZva2VNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBy
dW50aW1lTWV0aG9kLCBjb25zdCBBcmdMaXN0ICZhcmdzKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmgKaW5kZXggMzU0ODVhZGI2Mzg5OGZlN2I1YjU3OTBkYjFkMGI0ODA3ZjAwZTU2My4uNjBm
YmRhY2QyMjk1MDIxMzZjMzNhMjhlN2Q3OGEwYzQ1Y2QyMjBmZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5j
bHVkZSAib2JqY19oZWFkZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+
CisjaW5jbHVkZSA8cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtODksOSArOTAsOSBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxPYmplY3RTdHJ1Y3RQdHI+IF9hcnJheTsKIH07CiAKLWNs
YXNzIE9iamNGYWxsYmFja09iamVjdEltcCA6IHB1YmxpYyBKU09iamVjdCB7CitjbGFzcyBPYmpj
RmFsbGJhY2tPYmplY3RJbXAgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKIHB1
YmxpYzoKLSAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAoRXhlY1N0YXRlKiwgT2JqY0luc3RhbmNl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAgICBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
IGIvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggZjg0NWEwMGM4ZWVm
OWY1YzVhYmQyMDJkNWY5YzZjODdhOGE4ZDUxOC4uNTYwNTMzM2M2MGRjYjRlZDZiMjk0ZGIwNjNl
YWFiYTA4YThhOGM3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KKysrIGIvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTE4OSw5
ICsxODksOSBAQCB1bnNpZ25lZCBpbnQgT2JqY0FycmF5OjpnZXRMZW5ndGgoKSBjb25zdAogCiBj
b25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpzX2luZm8gPSB7ICJPYmpjRmFs
bGJhY2tPYmplY3QiLCAwLCAwLCAwIH07CiAKLU9iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0Zh
bGxiYWNrT2JqZWN0SW1wKEV4ZWNTdGF0ZSogZXhlYywgT2JqY0luc3RhbmNlKiBpLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxs
YmFja09iamVjdEltcChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIE9iamNJbnN0YW5jZSogaSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAg
IC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBv
ZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICA6IEpTT2JqZWN0KGRlcHJlY2F0ZWRH
ZXRET01TdHJ1Y3R1cmU8T2JqY0ZhbGxiYWNrT2JqZWN0SW1wPihleGVjKSkKKyAgICA6IEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1
cmU8T2JqY0ZhbGxiYWNrT2JqZWN0SW1wPihleGVjKSkKICAgICAsIF9pbnN0YW5jZShpKQogICAg
ICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuY3BwIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4
IDI5MTQ1YjY1MzYzYjA2OWVmZTU3MDRhYjk4MGRiZTk4ZTZhZGI2ZDkuLmNkMjE5NGFkMjM2NGJi
YzU0NDNhYjc5NWUzMmM0ZmY2ZmRlMDhlNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmNwcAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAK
QEAgLTQzLDExICs0MywxMSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKFJ1bnRpbWVNZXRo
b2QpOwogCiBjb25zdCBDbGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGlt
ZU1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjppbmZvLCAwLCAwIH07CiAKLVJ1bnRpbWVNZXRo
b2Q6OlJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIG0pCitSdW50aW1lTWV0aG9kOjpSdW50aW1lTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRl
bnRpZmllciYgaWRlbnQsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBtKQogICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QKICAgICAvLyBleGVjLWdsb2JhbERhdGEoKSBpcyBhbHNvIGxpa2Vs
eSB3cm9uZy4KICAgICAvLyBDYWxsZXJzIHdpbGwgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBn
bG9iYWwgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBuYXRpdmUgb2JqZWN0ICJtIi4KLSAg
ICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZGVwcmVjYXRlZEdldERP
TVN0cnVjdHVyZTxSdW50aW1lTWV0aG9kPihleGVjKSwgaWRlbnQpCisgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgZGVwcmVjYXRlZEdldERP
TVN0cnVjdHVyZTxSdW50aW1lTWV0aG9kPihleGVjKSwgaWRlbnQpCiAgICAgLCBfbWV0aG9kTGlz
dChuZXcgTWV0aG9kTGlzdChtKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IDlj
ODBiYTE5YzQyNTdhZGYxNzc1MjIwNzZmMzlmMGEwMTljNTU5OGMuLjk2ZDEyYWFlYmM0ZGYzNDY2
YzI4NWMyMDE5ZTE4YTdkZWIxYzQwOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgUnVudGltZU1ldGhvZCA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKLSAgICBSdW50aW1lTWV0aG9kKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0Jik7CisgICAg
UnVudGltZU1ldGhvZChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0Jik7CiAgICAgQmluZGluZ3M6Ok1ldGhvZExp
c3QqIG1ldGhvZHMoKSBjb25zdCB7IHJldHVybiBfbWV0aG9kTGlzdC5nZXQoKTsgfQogCiAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
aW5kZXggODNhYWU3NDhmYTlmMjMxNTQwMDdhODlmMjJhM2I3ZDBjYjY5YWRmYy4uMDg2MzQ1MjJm
YTdkMDIxNTgxODI4ODVhNTJkZWFjMWE3OTAzMmY3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmNwcApAQCAtMzgsMTYgKzM4LDE2IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKIGNvbnN0IENs
YXNzSW5mbyBSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJSdW50aW1lT2JqZWN0IiwgMCwgMCwg
MCB9OwogCi1SdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgUGFz
c1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCitSdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAog
ICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImki
LgotICAgIDogSlNPYmplY3QoZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxSdW50aW1lT2JqZWN0
PihleGVjKSkKKyAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UnVudGltZU9iamVjdD4oZXhlYykpCiAgICAgLCBtX2lu
c3RhbmNlKGluc3RhbmNlKQogewogfQogCi1SdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0KEV4
ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNzUmVm
UHRyPEluc3RhbmNlPiBpbnN0YW5jZSkKLSAgICA6IEpTT2JqZWN0KHN0cnVjdHVyZSkKK1J1bnRp
bWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQ
dHI8SW5zdGFuY2U+IGluc3RhbmNlKQorICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGds
b2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9pbnN0YW5jZShpbnN0YW5jZSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGI3MzVlMzZkMDcxY2ZiYjg4YWJlMTE5NmI1Mzc0
YTEzMGMxNDc2YmEuLjY0YzgwNDk3NjFlOTUyY2JkNGRiYzQ0MDJmY2RiNzhkZTgzMjZiNzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtMjgsMTMgKzI4LDE0IEBACiAKICNpbmNsdWRlICJC
cmlkZ2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+CisjaW5jbHVkZSA8
cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBu
YW1lc3BhY2UgQmluZGluZ3MgewogCi1jbGFzcyBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTT2Jq
ZWN0IHsKK2NsYXNzIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKLSAgICBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8
SW5zdGFuY2U+KTsKKyAgICBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOwogICAgIHZpcnR1YWwgflJ1bnRpbWVPYmplY3QoKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTY3LDcgKzY4LDcg
QEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICBSdW50aW1lT2JqZWN0
KEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFBhc3NSZWZQdHI8SW5z
dGFuY2U+KTsKKyAgICBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kiwg
Tm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgUGFzc1JlZlB0cjxJbnN0YW5jZT4pOwogCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7
IHJldHVybiAmc19pbmZvOyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDI2MGY4MzFlNTI4MzBkMzZjM2QxM2MwYTc4ZDRkZDVm
YjczOTMxOTguLmQ3ZDg4MDM1ZGEyYTlkOTcwNTM4NzYwNjZiNzI0NGYzNTM4NjYzZDMgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDUtMjEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwg
Y2FsbGFibGUgb2JqZWN0cyBzaG91bGQgaGF2ZSBhIGdsb2JhbCBvYmplY3QgcmVmZXJlbmNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ5NQorCisg
ICAgICAgIFVwZGF0ZSB0aGUgcGx1Z2luIHByb3h5IHRvIGhhbmRsZSB0aGUgbmVlZCBmb3IgZ2xv
YmFsIG9iamVjdC4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06
CisgICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6Om5ld1J1bnRpbWVPYmplY3QpOgorICAg
ICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OlByb3h5UnVudGltZU1ldGhvZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6OmdldE1ldGhvZCk6CisgICAgICAgICogUGx1
Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVP
YmplY3Q6OlByb3h5UnVudGltZU9iamVjdCk6CisKIDIwMTAtMDUtMjAgIFN0ZXZlIEJsb2NrICA8
c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxv
dy4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5t
bSBiL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCA5YTk3
NmY5YjU2YjFhZTgwNTBmZjg0OTQxYTlkMjllNDQ0YmNjYTBhLi5iNTY5YTRmZWIyNGY4ODUzZGMw
ZmQxNGI0MTkwM2QyM2FjMTMyOWRmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLm1tCkBAIC0xMzMsNyArMTMzLDcgQEAgUHJveHlJbnN0YW5jZTo6flByb3h5SW5z
dGFuY2UoKQogICAgIAogUnVudGltZU9iamVjdCogUHJveHlJbnN0YW5jZTo6bmV3UnVudGltZU9i
amVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgUHJveHlSdW50
aW1lT2JqZWN0KGV4ZWMsIHRoaXMpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIFByb3h5UnVudGlt
ZU9iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHRoaXMpOwogfQogCiBK
U0M6OkJpbmRpbmdzOjpDbGFzcyogUHJveHlJbnN0YW5jZTo6Z2V0Q2xhc3MoKSBjb25zdApAQCAt
MTc4LDggKzE3OCw4IEBAIEpTVmFsdWUgUHJveHlJbnN0YW5jZTo6aW52b2tlKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBJbnZva2VUeXBlIHR5cGUsIHVpbnQ2NF90IGlkCiAKIGNsYXNzIFByb3h5UnVu
dGltZU1ldGhvZCA6IHB1YmxpYyBSdW50aW1lTWV0aG9kIHsKIHB1YmxpYzoKLSAgICBQcm94eVJ1
bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5k
aW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIG5h
bWUsIGxpc3QpCisgICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6
Ok1ldGhvZExpc3QmIGxpc3QpCisgICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxP
YmplY3QsIG5hbWUsIGxpc3QpCiAgICAgewogICAgIH0KIApAQCAtMTkzLDcgKzE5Myw3IEBAIGNv
bnN0IENsYXNzSW5mbyBQcm94eVJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIlByb3h5UnVudGlt
ZU1ldGhvZCIsICZSdW50aW1lTWV0CiBKU1ZhbHVlIFByb3h5SW5zdGFuY2U6OmdldE1ldGhvZChK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
CiB7CiAgICAgTWV0aG9kTGlzdCBtZXRob2RMaXN0ID0gZ2V0Q2xhc3MoKS0+bWV0aG9kc05hbWVk
KHByb3BlcnR5TmFtZSwgdGhpcyk7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgUHJveHlSdW50aW1l
TWV0aG9kKGV4ZWMsIHByb3BlcnR5TmFtZSwgbWV0aG9kTGlzdCk7CisgICAgcmV0dXJuIG5ldyAo
ZXhlYykgUHJveHlSdW50aW1lTWV0aG9kKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgcHJvcGVydHlOYW1lLCBtZXRob2RMaXN0KTsKIH0KIAogSlNWYWx1ZSBQcm94eUluc3RhbmNl
OjppbnZva2VNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0M6OlJ1bnRpbWVNZXRob2QqIHJ1bnRp
bWVNZXRob2QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oIGIvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAppbmRleCBhZjNjNWRiNWU4M2JlNGZhMjRmNjhhYWYx
ZDI5MzdkY2VlODA3NTMwLi44MWQ5YjQyOGM0NzBmOWQ4OTNlYTc0YmY1ODhhNGJhNWY4OGQzZDJi
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVj
dC5oCisrKyBiL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgK
QEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgUHJveHlJbnN0YW5jZTsKIAogY2xhc3MgUHJveHlSdW50
aW1lT2JqZWN0IDogcHVibGljIEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3QgewogcHVibGlj
OgotICAgIFByb3h5UnVudGltZU9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8UHJv
eHlJbnN0YW5jZT4pOworICAgIFByb3h5UnVudGltZU9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+KTsKICAgICB2aXJ0
dWFsIH5Qcm94eVJ1bnRpbWVPYmplY3QoKTsKIAogICAgIFByb3h5SW5zdGFuY2UqIGdldEludGVy
bmFsUHJveHlJbnN0YW5jZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QubW0gYi9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L1Byb3h5UnVudGltZU9iamVjdC5tbQppbmRleCA1YmE2ZTE1NjMwY2M3MTg1NjUwNWNlOWIwMjUz
MzhlNTBmNDljNTc1Li45Njg1NWIzMDg1MWZiM2E4OTlmZmRlMTBlYTI5NTZhN2UyOTcwODAyIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5t
bQorKysgYi9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbQpA
QCAtMzUsOCArMzUsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY29uc3QgQ2xhc3NJbmZvIFBy
b3h5UnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUHJveHlSdW50aW1lT2JqZWN0IiwgJlJ1bnRp
bWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCi1Qcm94eVJ1bnRpbWVPYmplY3Q6OlByb3h5UnVu
dGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8UHJveHlJbnN0YW5jZT4gaW5z
dGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGluc3RhbmNlKQorUHJveHlSdW50aW1l
T2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGluc3RhbmNlKQorICAg
IDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKQogewogfQogCg==
</data>
<flag name="review"
          id="41197"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>