<?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>67881</bug_id>
          
          <creation_ts>2011-09-09 19:14:40 -0700</creation_ts>
          <short_desc>Remove support for anonymous storage from jsobjects</short_desc>
          <delta_ts>2011-09-11 14:10:28 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>465190</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-09 19:14:40 -0700</bug_when>
    <thetext>Remove support for anonymous storage from jsobjects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465192</commentid>
    <comment_count>1</comment_count>
      <attachid>106954</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-09 19:19:58 -0700</bug_when>
    <thetext>Created attachment 106954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465216</commentid>
    <comment_count>2</comment_count>
      <attachid>106960</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-09 21:34:48 -0700</bug_when>
    <thetext>Created attachment 106960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465217</commentid>
    <comment_count>3</comment_count>
      <attachid>106960</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-09-09 21:46:58 -0700</bug_when>
    <thetext>Comment on attachment 106960
Patch

Attachment 106960 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9634031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465218</commentid>
    <comment_count>4</comment_count>
      <attachid>106961</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-09 21:54:56 -0700</bug_when>
    <thetext>Created attachment 106961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465226</commentid>
    <comment_count>5</comment_count>
      <attachid>106962</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-09 22:33:52 -0700</bug_when>
    <thetext>Created attachment 106962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465253</commentid>
    <comment_count>6</comment_count>
      <attachid>106962</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-10 00:28:18 -0700</bug_when>
    <thetext>Comment on attachment 106962
Patch

Attachment 106962 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9627827</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465264</commentid>
    <comment_count>7</comment_count>
      <attachid>106962</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-10 01:33:45 -0700</bug_when>
    <thetext>Comment on attachment 106962
Patch

Attachment 106962 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9635011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465330</commentid>
    <comment_count>8</comment_count>
      <attachid>106983</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-10 14:31:42 -0700</bug_when>
    <thetext>Created attachment 106983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465340</commentid>
    <comment_count>9</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-10 15:38:11 -0700</bug_when>
    <thetext>Mac build failure appears to be bogus -- i have made multiple clean debug and release builds, and the ews bot doesn&apos;t say what the error it believes exists is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465343</commentid>
    <comment_count>10</comment_count>
      <attachid>106983</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-10 16:29:18 -0700</bug_when>
    <thetext>Comment on attachment 106983
Patch

Attachment 106983 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9635248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465351</commentid>
    <comment_count>11</comment_count>
      <attachid>106983</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-10 17:12:36 -0700</bug_when>
    <thetext>Comment on attachment 106983
Patch

Please make sure to watch the bots on landing.  It is odd for there to be a spurious build failure on the EWS likes this.  We really should move to a system that can keep the entire the build output though :\.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465355</commentid>
    <comment_count>12</comment_count>
      <attachid>106983</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-10 17:29:31 -0700</bug_when>
    <thetext>Comment on attachment 106983
Patch

Attachment 106983 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9634316</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465407</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-11 14:10:28 -0700</bug_when>
    <thetext>Committed r94929: &lt;http://trac.webkit.org/changeset/94929&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106954</attachid>
            <date>2011-09-09 19:19:58 -0700</date>
            <delta_ts>2011-09-09 21:34:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67881-20110909191956.patch</filename>
            <type>text/plain</type>
            <size>139014</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4NzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGU1MTI3YTFhZDNiZTI2NDcxYWUzN2Zi
N2EyMmI5NTI4M2Y2ODc5M2YuLmZkMzE5NzExYmVjYTAyZjczNGIyOWIzMWE1MGVkMDI2M2Q2ZDVj
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggN2ViYzc4ODUxMGJkNzIxNDM2NmQwZjM1ZTEyMDgw
ZWYwNjExNzBkNy4uZDU0Y2Q1OGNhYWRiNDRkMGEzNzQwMzIwYzE5MmRjMTczZGI5ZTVkYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00
OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAvLyByZWZhY3RvciB0aGUgY29kZSBzbyB0aGlzIG92
ZXJyaWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCAzM2FhMGZkNGQxMWY4OWU1ZjdjNjg3ZDU5NzRiNTFiNDhhNWM4ZWJiLi5kODZk
M2FiZWFjYjQwZGQ2ZDk4M2VmMjkxNjIwZDNlYjNkNzFlYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8p
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IFBhcmVudDo6QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICB9CiAgICAgCiAg
ICAgSlNWYWx1ZSBnZXRQcml2YXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ0NzU2ODVlYmVkMzA4MWY2
MjBhZjdlMjg0MGYxZjNlMGVjM2M0OC4uZWQyZWI3YjFmODQ1MTlhMzk1M2IxNWU1NDgzODExOTc1
MzAwOWRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY3IEBACisyMDEx
LTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFu
b255bW91cyBzbG90cywgZXNzZW50aWFsbHkgYSBtZWNoYW5pY2FsIGNoYW5nZQorICAgICAgICBp
biBKYXZhU2NyaXB0Q29yZQorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZSk6CisgICAgICAgICogaGVhcC9NYXJrU3Rh
Y2suaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1
bWVudHM6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAgKEpTQzo6Qm9v
bGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJv
dG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAg
KEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OkRhdGVQ
cm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAo
SlNDOjpEYXRlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJh
c2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAg
KEpTQzo6SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNGaW5h
bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0
YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNT
dHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFy
aWFibGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBw
ZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAoSlNDOjpNYXRo
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9OdW1iZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6TnVtYmVyT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6Ok51bWJlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
T2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJlZ0V4
cDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmg6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5O
b2RlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90
eXBlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAoSlND
OjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24pOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6dG9EaWN0aW9uYXJ5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
cHJldmVudEV4dGVuc2lvbnNUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
bGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRk
UHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwdXRTcGVjaWZpY1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNo
ZWNrQ29uc2lzdGVuY3kpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm9w
ZXJ0eVN0b3JhZ2VTaXplKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hh
aW46OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXg6IEd1YXJkIGFnYWluc3QgZG91Ymxl
LSNkZWZpbmUgZm9yIHNvbWV0aGluZyBhbHJlYWR5ICNkZWZpbmVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBiYWQ5ZjhhMWIzMDFhMmM5OTVmYmUyZDI3Mjdl
YWI4OTMzNjk3NmFhLi5iYTc4MGMzZGE4MTlhZGE3YzU3MTJkYjdmYzZmY2I0MTRjMWVkNDc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTMzMyw2ICszMzMs
NyBAQCBfX1pOM0pTQzhldmFsdWF0ZUVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRTY29wZUNoYWluTm9k
ZUVSS05TXzEwU291cmNlQ29kZUVOU183SlNWYQogX19aTjNKU0M4aXNab21iaWVFUEtOU182SlND
ZWxsRQogX19aTjNKU0M5Q29kZUJsb2NrRDFFdgogX19aTjNKU0M5Q29kZUJsb2NrRDJFdgorX19a
TjNKU0M5TWFya1N0YWNrMTN2YWxpZGF0ZVZhbHVlRU5TXzdKU1ZhbHVlRQogX19aTjNKU0M5U3Ry
dWN0dXJlMjFhZGRQcm9wZXJ0eVRyYW5zaXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBTMF9SS05T
XzEwSWRlbnRpZmllckVqUE5TXzZKU0NlbGxFUm0KIF9fWk4zSlNDOVN0cnVjdHVyZTIybWF0ZXJp
YWxpemVQcm9wZXJ0eU1hcEVSTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzlTdHJ1Y3R1cmUy
NWNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBTMF9OU183SlNW
YWx1ZUUKQEAgLTM0Miw3ICszNDMsNyBAQCBfX1pOM0pTQzlTdHJ1Y3R1cmUyOGFkZFByb3BlcnR5
V2l0aG91dFRyYW5zaXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfMTBJZGVudAogX19aTjNK
U0M5U3RydWN0dXJlM2dldEVSTlNfMTJKU0dsb2JhbERhdGFFUE4zV1RGMTBTdHJpbmdJbXBsRVJq
UlBOU182SlNDZWxsRQogX19aTjNKU0M5U3RydWN0dXJlNDBhZGRQcm9wZXJ0eVRyYW5zaXRpb25U
b0V4aXN0aW5nU3RydWN0dXJlRVBTMF9SS05TXzEwSWRlbnRpZmllckVqUE5TXzZKU0NlbGxFUm0K
IF9fWk4zSlNDOVN0cnVjdHVyZTZzX2luZm9FCi1fX1pOM0pTQzlTdHJ1Y3R1cmVDMUVSTlNfMTJK
U0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTlNfN0pTVmFsdWVFUktOU184VHlwZUlu
Zm9FalBLTlNfOUNsYXNzSW5mb0UKK19fWk4zSlNDOVN0cnVjdHVyZUMxRVJOU18xMkpTR2xvYmFs
RGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVOU183SlNWYWx1ZUVSS05TXzhUeXBlSW5mb0VQS05T
XzlDbGFzc0luZm9FCiBfX1pOM0pTQzlTdHJ1Y3R1cmVEMUV2CiBfX1pOM0pTQzljb25zdHJ1Y3RF
UE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFTlNfMTNDb25zdHJ1Y3RUeXBlRVJLTlNfMTNDb25z
dHJ1Y3REYXRhRVJLTlNfN0FyZ0xpc3RFCiBfX1pOM0pTQ2VxRVJLTlNfN1VTdHJpbmdFUEtjCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKaW5kZXggOTJhOGEwZWE2MDU0OWM5YzhlNmNjY2ZjZWVmM2JiYjUzMzg4MjZhMC4uNzUyYzY2
MThhNDY5OGE5NGQ5MzE3MjJhNTE5ZTEzZTk2MjQyNGYxYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNTAsNyArNTAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCmluZGV4IDdhMDRlMDYwNzgxOTRiNjEy
Y2EyYzEzMGYzYzczOTg3NTU2NTA1YzkuLmZkNjY4YmQ5ZWRiNjk4MTFjYmEzOTdlYTc4ZGNiNzEy
OTVkYzUyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFj
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcApAQCAt
MTc0LDYgKzE3NCwxMCBAQCB2b2lkIE1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZShKU1ZhbHVlIHZh
bHVlKQogICAgIGlmIChjZWxsLT5zdHJ1Y3R1cmUoKS0+c3RydWN0dXJlKCktPkpTQ2VsbDo6Y2xh
c3NJbmZvKCkgIT0gY2VsbC0+c3RydWN0dXJlKCktPkpTQ2VsbDo6Y2xhc3NJbmZvKCkpCiAgICAg
ICAgIENSQVNIKCk7CiB9CisjZWxzZQordm9pZCBNYXJrU3RhY2s6OnZhbGlkYXRlVmFsdWUoSlNW
YWx1ZSkKK3sKK30gCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtTdGFjay5oCmluZGV4IGUxYzI0OWEyMGQ0YThmY2MyNTA4ZDkyMzg2ZjI5
YTY4NmI2ZTc4MWEuLjg0MjdiNzM3ZDI4OWU4NzliZDk4ODE2YmM1MWRiNGIxMzEwNTc1ODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCkBAIC0xMTgsOCArMTE4LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9O
KQogICAgICAgICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVNldChKU1ZhbHVlKiwgc2l6ZV90KTsKLSAg
ICAgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVWYWx1ZShKU1ZhbHVlKTsKICNlbmRpZgorICAgICAg
ICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVZhbHVlKEpTVmFsdWUpOwogCiAgICAgICAgIHZvaWQgYXBw
ZW5kKEpTVmFsdWUqKTsKICAgICAgICAgdm9pZCBhcHBlbmQoSlNWYWx1ZSosIHNpemVfdCBjb3Vu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDAwNTE3
NDIxMzc3MTllNmIxNzM0YWVlOWYzODI5YWQzN2Y2ZjNiMDUuLjU2MTEzZGZhNjFkMDkyMjVkMWNi
YzE5YzM5Y2YzMmExNDMyM2I2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCkBAIC0xMTMsNyArMTEzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAg
ICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IGQxOGQxMmFjMDc3NDU1MWEyMWVlOGEzODdhYzc4ZDhm
MWM1ZTMwZTIuLjQ5YjFmMDA3ZTUxNDkzNzM5M2VkOTY0NTc4NDZjNjgwMDE1M2U4ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAg
LTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAK
aW5kZXggOTk2NzRiYjIzYjQ5ODE4YjJmM2EzNDg0YzI2NmUwMTM5ZDg2ZWY0Ni4uNWQ5NDE1Y2Zk
MDk3ZGJjNWQ4MzA0N2Q5ZDg0OGY1OTFkZmRjZjg4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTI0LDcgKzEyNCw2IEBAIHZv
aWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3Vz
VmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAK
IGJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggNjA0
MWE2MmFkNTEwNTkxYzRjMzBiN2E3ZmFhNjM0MDAwNjA5YTQ4MS4uZDc3YmZlOWUzYTNmYWU0MDhl
ZjVlZjQ2MzMyYTRlOTkyNzJlMDRmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00NSwxMyArNDUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxPYmplY3QqKTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnlt
b3VzU2xvdENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuaAppbmRleCAwZmZhNDI1ZDAxZTlkNTQyM2VkNDFhMTViZGQ2ODA5YmE2Yjky
Mzg4Li45YmI5MzNmMDVlZjFjOTQxNDBkOWQ3MTAwNzY0NzM1NTUxZjVkZDNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBAIC00Miw3ICs0Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBk
ZDAxOTRmM2Y1ZDA5MmIwOGVhYzI2NmVhOTY5OTVkNWI2MzEwZjFiLi5mZDQ0Mjg3Y2FjOWQ1Nzk1
ODNjYTIwNzljYjAxZTQwYTg5NmM3OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNDksMTMgKzQ5LDEyIEBAIGNvbnN0
IENsYXNzSW5mbyBCb29sZWFuUHJvdG90eXBlOjpzX2luZm8gPSB7ICJCb29sZWFuIiwgJkJvb2xl
YW5PYmplY3Q6OnNfaW5mbywKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChCb29sZWFuUHJv
dG90eXBlKTsKIAotQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQorQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCb29sZWFuT2JqZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewogICAgIHNldEludGVybmFsVmFsdWUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc0Jvb2xlYW4oZmFsc2UpKTsKIAogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgQm9vbGVhblByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggMTRhMTYzOGUwYjJmNjI1OGE4NTVj
NWY5MTk1ZGFkYTFkODg0NGQ4My4uNDU5MzUxNDdhMTczYzYwNzYxYWNjZDZhZWM1NTdlYTU2NmE1
ZWYzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuaApAQCAtMzgsMTIgKzM4LDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCb29sZWFuT2JqZWN0OjpTdHJ1Y3R1
cmVGbGFnczsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3Vu
dCA9IEJvb2xlYW5PYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7CiAKICAgICBwcml2YXRl
OgogICAgICAgICBCb29sZWFuUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5oCmluZGV4IDFmZTc0Y2M1YmRmODhkZGU3NmRkZWVhMWQzZGU2NmYwODFhMzU4ODEu
LjBhMGYyZWQ1NTBiNGViODIyN2YyOThjMzU1NDRkM2EwMDNmZjIzZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC00MCw3ICs0MCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCBlYmM3ZGJmZjlmNjE0
Mzc0MjY3MmEzNjlmZGVjMGFmNGQzYWI1MmI1Li4xYTVhZTQ0NjE0MzgxYTI1NjYzYWU5NWRjYTI5
YTNjMWFhOTI4NjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5z
dGFuY2UuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuY3BwCmluZGV4IDQwMzQxNWI1YWI4ZTg1NDJjMzNjYTZiMDYzN2E2ZTZkYTcxZTdhZGQuLjZl
Njc2NzYzMWY4NzliOTg2YWMwM2M4YWUxMGVlN2VhN2RkNmQ1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC00MzAsMTMgKzQzMCwx
MiBAQCBjb25zdCBDbGFzc0luZm8gRGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJEYXRlIiwgJkRh
dGVJbnN0YW5jZTo6c19pbmZvLCAwLCBFeGVjUwogCiAvLyBFQ01BIDE1LjkuNAogCi1EYXRlUHJv
dG90eXBlOjpEYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitEYXRlUHJvdG90eXBlOjpEYXRlUHJv
dG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICA6IERhdGVJbnN0YW5jZShleGVjLCBzdHJ1Y3R1cmUpCiB7CiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIAogICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFk
ZGVkIGxhdGVyLCBhZnRlciBEYXRlQ29uc3RydWN0b3IgaGFzIGJlZW4gYnVpbHQuCi0gICAgcHV0
QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQog
CiBib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IGIzNGM2
YjZmMjE4YmFmYzAzNGYwZGM0MmM2NjBkY2E3ZWMxMDY5MzkuLmNlMDgyNmE0YTQ4NWJmY2IxMjE1
MDg0NGRmNDUxMjMxZTFkNzcwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmgKQEAgLTQ1LDE0ICs0NSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRGF0ZUluc3RhbmNl
OjpTdHJ1Y3R1cmVGbGFnczsKLQotICAgICAgICBDT01QSUxFX0FTU0VSVCghRGF0ZUluc3RhbmNl
OjpBbm9ueW1vdXNTbG90Q291bnQsIERhdGVQcm90b3R5cGVfc3RvbXBzX29uX3lvdXJfYW5vbnlt
b3VzX3Nsb3QpOwotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENv
dW50ID0gMTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCA1YjhmOTVhNWNlOWQzMjI4NTZm
YWFlOTliMmRlMDg3OGMxOWRkOTEzLi4zOWQ2YzIyZjNhOWI0YjExZWYyODc2NGUwZDAzZDhlODk3
NzVmODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5j
ZS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCA2OTg2NzUy
NGM0Y2U3ZWY1Yzc2M2I2YTUyNzJlNzE2Y2U4NDk1NzljLi41YjhjYjQ4ZjljODIxNjU5NDVlYzBj
NjJlZTNmMzUyZGQ1NzgyZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC01NiwxMiArNTYsMTEgQEAgRXJyb3JQcm90b3R5cGU6
OkVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3QKICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi12
b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksICIiKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRF
bnVtKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
MCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaAppbmRleCAwZDBmZDMwNzk0MDZjNTk2Mjc2YjU2ZGYyZmE0ZjY3MGRlZjA2
ZDYzLi44MzE4NjVhYTRkNDgyMjNhODg0NWQ2M2YyNTA4ZDIyYmE0NjY5ZDcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTQwLDcgKzQw
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC00OCw3
ICs0OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJ
bnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBB
bm9ueW1vdXNTbG90Q291bnQgPSBFcnJvckluc3RhbmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAx
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKaW5kZXggMzll
YmUxNjdkZTAwNWY1Nzk3ZjdmOTA1YWZhOTA4NmMxNDgxNTFiZC4uYjE3MjRkMDM0NjYzYmYzMTEz
N2QwYThlYWMxMjZhODhlOTNkMTEyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpT
X0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTk3LDcgKzk3LDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAg
IHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggNmJmNjQyNWMzMWIyY2U5NWMz
N2M4NTFlODZhOTYxODg5NGY1MDY5Yy4uNTM0MTUzYWU4NDk0Y2RlMTk5ZWFiMzAwYWYzNWQ3NDgz
YzRmZDFiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApA
QCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBtX251
bVBhcmFtZXRlcnNGb3JDYWxsID09IE5VTV9QQVJBTUVURVJTX0lTX0hPU1Q7CiAgICAgICAgIH0K
IAotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
KSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7IH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwogCkBAIC0xOTgsNyArMTk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24oKSB7IHJldHVybiBtX2Z1bmN0aW9uOyB9CiAKLSAg
ICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywg
VHlwZUluZm8oTGVhZlR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhMZWFmVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAK
QEAgLTMzNCw3ICszMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTM5NSw3ICszOTUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBD
bGFzc0luZm8gc19pbmZvOwpAQCAtNTUxLDcgKzU1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBmcm9tR2xvYmFsQ29kZShjb25zdCBJZGVu
dGlmaWVyJiwgRXhlY1N0YXRlKiwgRGVidWdnZXIqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmpl
Y3QqKiBleGNlcHRpb24pOwogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5oCmluZGV4IGU3MDE4MmYzMTNhNzZjZDYyMDE3ZjQ5Y2U4YWU0MDczMTM1ZGVlNWUu
LmI3ZTIyMzlkMmI0YjE5NTZjMDc0YzQzOWNjMGYwZjE5NTU3N2M4ZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKaW5kZXggMjExMWE1YTVmOWJmMmJj
ZTNkM2FlZWRlMDE1N2ZlM2I0MWI3ZGE1MC4uMjVhMzY5MjQyNmIzMDg4NDFlOGVlMjc2MzBiNGU3
ZjMyMWMyYmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0
dGVyU2V0dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0
dGVyLmgKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc2V0
U2V0dGVyKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIHNldHRlcikgeyBtX3Nl
dHRlci5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgc2V0dGVyKTsgfQogICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNWaXNpdENo
aWxkcmVuKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oR2V0dGVyU2V0dGVyVHlwZSwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiksICZzX2lu
Zm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaAppbmRleCBlMDViYjEzNDk5MGU3M2JhM2MyNTZjNzI5ZGIzODE1NGJlYWJiZDRkLi42
ODAzMGEyZDQyYTk2MDVmNmFmYWY1MTQ0NDhjZGIwOTAyN2Y1NTJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDZjMGQzM2QzN2Iw
OWU2NjA3ZmQyY2RiYWY4ZTExYmMyNTE2NWNmMjEuLmIyN2IyZTU2NTJiMjEwMGU5MTYzOTFhNDQ0
YzVjNzFlMDE5ZTIwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQVBJVmFsdWVXcmFwcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBUElWYWx1ZVdyYXBwZXIuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3Qg
Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmgKaW5kZXggN2U4ZmQ5ODI2YTk3YjcyMDUyNTE0MzA4NmQyZjE0ODIzNDdjMDYwYy4u
YWM0NWFkMGNjZDRhYWU4NTUwN2VjOWMxODZjYWJlYzJiOGJkOWNmMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKIAotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKENhbGxGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCmluZGV4IDM1NDY1OWEzNjkzNWI2ZmU2ZjkzYmNkZTQ0ZTFjODk5MGVjMDEyNTkuLjU2NjIy
MjVlNTdjZDE5NzUzY2QyOTQ2ZTFiNjJmNTcyNmMwNmRiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTE1MSw3ICsxNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlubGluZSB2b2lkIHZpc2l0Q2hpbGRyZW5EaXJl
Y3QoU2xvdFZpc2l0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0
ZUFycmF5LmNwcAppbmRleCA0M2ZkMjI5OWRlODFjYWQ3ZjBlODE2NjAzZmM0NmIyOTg2ZWE0OTUx
Li5kYWMzZDk0ZDI4OTc2YzQ5YWRkZDgwOTRlZjBkZDM0M2NhMDkxOTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC01MSw3ICs1MSw3IEBA
IEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXkoKQogCiBTdHJ1Y3R1cmUqIEpTQnl0ZUFycmF5Ojpj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNs
YXNzSW5mbykKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8pOworICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBjbGFzc0luZm8pOwogfQogCiBib29sIEpTQnl0ZUFy
cmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmgKaW5kZXggZTEwNjQ0NjZmMDc0ODA1M2NkOTBiZjRkOTkxNDg0MDFjMTIx
NWQ0MC4uNWIzYjc2ZTBiN2IzM2U4MGJlYTBhYTIxZDc4MzY3MWM2ZDgwMzE2NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTE0NSw3ICsxNDUsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICNlbmRpZgogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSAwOwogCiAgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgQ3JlYXRpbmdFYXJseUNlbGxUYWcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDFkYjNjODBkYjZj
NDA0MmMxMmFiYWQyNzMyNWJhY2U1YWNmMTlhZmMuLmIxOTI2YTRiMzhmZTNlYmU5ZWQyMTExM2Qy
Y2YyNTQ1ZDM4NWM0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmgKQEAgLTExOSw3ICsxMTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7
CiAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgICAgICBOYXRpdmVGdW5jdGlvbiBu
YXRpdmVGdW5jdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKaW5kZXggMzMwMTg3ZWVkNjk4MTVmM2RkMWQ3NTUxMzg0YTc1NzA1OWU2MzA0
Ny4uMThhNjkzMjY5ODZmMWRiYmM1Yjc2ZWM0NDMyM2QzOTBlM2QzMzMzNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNzYsNyArMTc2
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAgc3RydWN0dXJlKCktPnNldEdsb2Jh
bE9iamVjdChnbG9iYWxEYXRhLCB0aGlzKTsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpT
R2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFz
X29ubHlfYV9zaW5nbGVfc2xvdCk7CiAgICAgICAgICAgICBwdXRUaGlzVG9Bbm9ueW1vdXNWYWx1
ZSgwKTsKICAgICAgICAgICAgIGluaXQodGhpc1ZhbHVlKTsKICAgICAgICAgfQpAQCAtMjgzLDcg
KzI4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgMCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBy
ZWdpc3RlcldlYWtNYXAoT3BhcXVlSlNXZWFrT2JqZWN0TWFwKiBtYXApCkBAIC0zMDMsNyArMzAy
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGRvdWJsZSB3ZWFrUmFuZG9tTnVtYmVyKCkg
eyByZXR1cm4gbV93ZWFrUmFuZG9tLmdldCgpOyB9CiAgICAgcHJvdGVjdGVkOgogCi0gICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU1ZhcmlhYmxlT2Jq
ZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgICAgIHN0cnVjdCBHbG9iYWxQcm9wZXJ0eUlu
Zm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmlu
ZGV4IDdiNjhiNTIyY2NmNzYyZDFkMTM1Y2M2YzE3NDViYjlkMzM4YzYyMTAuLjIxZmU0MjkxNmJh
YTY0ZTIyMDMxYTM1NWU0YWFlZDJhOWFlNDg5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuaAppbmRleCA0ZTg1YmYxMWFiMmMxM2U2MTMzMDU3MDJhMzhhNmRlMTFi
MDE5YTVmLi5hOWY5Y2Y2YTRkMDNiMDVkZGY2YWY2OTYzN2E2NzkyMzY1MjUyMTIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCkBAIC00Myw3ICs0Myw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCmluZGV4IGJjNDMyZDNhYzhmMjkyNmQ5NTVkYzZlY2M2OTIxZjU4YjU4ZGM0MGYu
LmUzZmI3NmNmZWFiMmU1ZWJmOGFmZjkyYmM5NDA1YmMzMDllNDQ2MDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMjMxLDIyICsyMzEsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIG1fc3RydWN0dXJlLT5mbGF0dGVuRGljdGlvbmFyeVN0cnVj
dHVyZShnbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHV0QW5v
bnltb3VzVmFsdWUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCB1bnNpZ25lZCBpbmRleCwgSlNW
YWx1ZSB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1
Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKLSAgICAgICAgICAgIGxvY2F0aW9uRm9yT2Zm
c2V0KGluZGV4KS0+c2V0KGdsb2JhbERhdGEsIHRoaXMsIHZhbHVlKTsKLSAgICAgICAgfQotICAg
ICAgICB2b2lkIGNsZWFyQW5vbnltb3VzVmFsdWUodW5zaWduZWQgaW5kZXgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEFTU0VSVChpbmRleCA8IG1fc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291
bnQoKSk7Ci0gICAgICAgICAgICBsb2NhdGlvbkZvck9mZnNldChpbmRleCktPmNsZWFyKCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgSlNWYWx1ZSBnZXRBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1
cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbkZv
ck9mZnNldChpbmRleCktPmdldCgpOwotICAgICAgICB9Ci0KICAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChz
dHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCkpOwpAQCAtMjc0LDcgKzI1OCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IDA7CkBAIC0zNTEsNyArMzM1LDcgQEAgQ09NUElMRV9BU1NFUlQoKEpTRmluYWxP
YmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5ID49IEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3QK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTM5OCw3ICszODIsNyBAQCBDT01QSUxFX0FT
U0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9i
amVjdF9pbmxpbmVTdAogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcApp
bmRleCBjYzEyMmJkN2RlY2M4MzZlYTlmM2QxNzBkN2YzOGIwMWMyNzVjY2IyLi40YzdhNmVlOTY3
NDU4ZTkxNGE0NzMwZmRlNjRhM2FhNWU0NTEwOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcApAQCAtNTQs
OSArNTQsOCBAQCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdAogICAgIFByb3BlcnR5TmFtZUFycmF5
IHByb3BlcnR5TmFtZXMoZXhlYyk7CiAgICAgby0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzKTsKICAgICBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdHMgPSAwOwotICAgIGlmICgh
by0+c3RydWN0dXJlKCktPmhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgJiYgIW8tPnN0cnVj
dHVyZSgpLT5oYXNBbm9ueW1vdXNTbG90cygpICYmCi0gICAgICAgICFvLT5zdHJ1Y3R1cmUoKS0+
aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpICYmICFvLT5zdHJ1Y3R1cmUoKS0+aXNVbmNhY2hl
YWJsZURpY3Rpb25hcnkoKSAmJgotICAgICAgICAhby0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCku
b3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygpKQorICAgIGlmICghby0+c3RydWN0dXJlKCktPmhh
c05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgJiYgIW8tPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJT
ZXR0ZXJQcm9wZXJ0aWVzKCkKKyAgICAgICAgJiYgIW8tPnN0cnVjdHVyZSgpLT5pc1VuY2FjaGVh
YmxlRGljdGlvbmFyeSgpICYmICFvLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIG51bUNhY2hlYWJsZVNsb3RzID0gby0+c3RydWN0
dXJlKCktPnByb3BlcnR5U3RvcmFnZVNpemUoKTsKICAgICAKICAgICBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yKiBqc1Byb3BlcnR5TmFtZUl0ZXJhdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcj4oKmV4ZWMtPmhlYXAoKSkpIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Io
ZXhlYywgcHJvcGVydHlOYW1lcy5kYXRhKCksIG51bUNhY2hlYWJsZVNsb3RzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aAppbmRleCA2ZDVjNzVhYWYxN2JhYWZmODVhMGZiZjViNjVhMjRjNTU2ZmEzM2Q0Li4yZjJjY2I1
Y2YzMWFlODFkNTBmOTA3NDYzMWViNWMwYWYxZDBjYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC01NSw3
ICs1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVu
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eU5hbWVJdGVyYXRvcigpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCA2Y2YzNTc1YWI2ODgwZGQxMmViYzZhNTY5
ZThlYjA4ZWI0NDQwNWU2Li5kYmE4OTk2NzFkOGFhZDg5M2E4ZDVmMzA3NTdjYTlkYjkzOTc4ZDUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAotICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1
ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
cmluZy5oCmluZGV4IDYzODIwMzFiMmRiNTkwN2JlOWEzMTA2YWI4ODlhYTYxNDc0ZDM2YjQuLjdi
MGRjZTJmNjJjYzQ3Y2M1ZmIzNjYzMjNmZmNkZGE4NTY4MmIzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtNDM4LDcgKzQzOCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhTdHJpbmdUeXBlLCBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG8sIFR5cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFyaWFibGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFyaWFibGVPYmplY3QuaAppbmRleCBkNTdjNmFjMDRjYmUyYjE3N2FmNjM3OWFlOTJlNjRj
NzU4OGYyM2JmLi5jMjZkYzdlYmExN2ZlOWJkNDFmYWUzY2FiMDE3NTkwNjI4YjA2Y2Y5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCkBA
IC02Myw3ICs2Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAKICAgICBw
cm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9i
amVjdC5oCmluZGV4IDExMzQyM2UxNjM0NzNlNTI3YTJhMzRmNTU1ZTJmNWQ1OGZlZDg4NDQuLmNm
NDRlMDRlNzg1ZDI0ZTQ5YTBiOWM1NTcyZDVlMTVjMmE3YjQ5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zNyw3ICszNyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5kZXggYmVmOTMxMGFjOGIwZTViMmU2
Mjc0N2ZhYzljNjRmZGJhODYzZGMwNS4uNTNjMzA5NjZhNDk1MjdlMTkwMDYzYWUxZWU4Mzc1MDUz
ZDVjYmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApA
QCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuaAppbmRleCBhMzlkODE0ZmEzZGYzZDU0NDcxZWMzMzU1NGViZGEyZjhkNTVi
YWY1Li4yNWNjNmRkNWFkOTNjNDNlNWNhNjNiYjM5ODNjMDhmNWEwNmZkZWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaAppbmRleCA3NWQzMzdhMzAwNjgyYTk0NjliMzgxNWZmY2U5YTA3YmI0YjE1NWNkLi5m
Mjk5NGMyMGNmNzlhMzFlYjhlZDEwZDlhOWI5Mjc0NDliMTc1ZGJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAgICAgIGVudW0geyBOYU5WYWx1ZSwgTmVnSW5m
aW5pdHksIFBvc0luZmluaXR5LCBNYXhWYWx1ZSwgTWluVmFsdWUgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5kZXggOWEwNTExMzFiMmYyOTA3Yjhl
ZmNkNmUzZWE1MzUwYTY0YmE2OGYwMS4uMjcyMWVhOGY0OTgwZThhZGFjYjc4MDM5N2E1MmZjOTQ0
NWI2ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0
LmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlw
ZS5jcHAKaW5kZXggNTI3NjgxNzg2NGQ5YjM1MDAyOTg0NzNkMzE1ODM5NTYyOTg2YTY3Ni4uNmQw
ZmU4OTI4ODg4YWEyZTFlYmJmNDlkYTFjZmUyNjE1NWNhMjY5MiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC03MCwxMyArNzAs
MTIgQEAgY29uc3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZvID0geyAiTnVtYmVy
IiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAwLAogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KE51bWJlclByb3RvdHlwZSk7CiAKLU51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCitOdW1iZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBOdW1iZXJP
YmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxW
YWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVtYmVyKDApKTsKIAogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgTnVtYmVyUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKaW5kZXggM2VhZGU2YzY4OGU4NjAxZTJjZmE0NDlh
ZjQzNzJkNGI1MDM4ZGQxYi4uN2U1N2IyNzIwZDgzZjViMTcwZDJlZWMzMWZiOWM2ODcyNzYwYzFm
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBl
LmgKQEAgLTM4LDEyICszOCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTnVtYmVyT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IE51
bWJlck9iamVjdDo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIE51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmgKaW5kZXggMzgzZjQwMjlmOTY0ODhkMmIxODMyYjlmMDQxOGJjMzBjYWZjZmQwZi4uMjM3
YTU5NDVjZWZmYTdlNTE4Yjc0MjZhN2IzZDRjOWFmNjA5ZTQ2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNTA4
OWE1ZmZkYmY3NzNkMGZmN2U4Njk5MjEzNWQ1NTVhYTI5NTc2NC4uZGIwMDg5YjdkZDllNWFlZTYy
ZTQ3NDJlMzA5ZDQwMzYyYWQ5YWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC02OSwxMSArNjksMTAgQEAgT2JqZWN0UHJv
dG90eXBlOjpPYmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0dWN0
dXJlKQogewogfQogCi12b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBP
YmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWxPYmplY3QqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQg
T2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggMTIw
NzQwODk1MjUzN2U2YWU3MTFjMjRhMTNiZmFhMjljZDcxODNmOS4uNGMxMmRmYjQ2NzkyZGMxYjhl
MWVlMTMyMGU4ZDQyNGJhNmI5ZmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTQwLDEyICs0MCwxMSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNOb25G
aW5hbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU05vbkZpbmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291
bnQgKyAxOwogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNH
bG9iYWxPYmplY3QqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAppbmRl
eCBlOTkwODE0M2UxZTc4MDdkMGVmYzE4NWU5M2Q0MjYxNmYxMGE4ZjRiLi4wY2Y4MGEwNmUzMmE4
MDZjZDRhMzg5NmJkYzFiZjg5NzNjN2FmMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksIDAsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksICZzX2luZm8pOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKaW5kZXggYzAyZDA2ZDdjMmM1OGY4OWNlN2VkY2E3NGZiMTY3NWM3YWIw
YWU4Yy4uZmNiNGI4ZjI2MWVmYjNjODAwODk3ZTZhNjA0YWQ4Mjk3NjM0OTRkNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC02
Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmgKaW5kZXggMmYwNzc1ZjFjZWJkNDZkN2Q5NmNlZjM0NzRmM2ZlOWViYzVh
NzdmOC4uMDkxYTFkYWNjMTY4NDc4YTQ4ZDU2OGU4MTIyZDlmYzEwOWYyZWFlYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY5LDcgKzY5LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IGQ0NWIwYTI3
YjA2ZDBjNDQxNTYzMjQ2NDg4ZTJjOGRlNjlmMzY2ZTMuLmMzMmE5YmY4N2VlZjYzNWUwYTg2MmRm
ZmJkYzM3NTJlZmFlNzdkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cFByb3RvdHlwZS5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Nv
cGVDaGFpbi5oCmluZGV4IDY5YjBiZDEyYjA5MzMwMjgzODA3MWU4NTgyMWJiNzg4NTYyNWMyNTMu
LmRkNTAwNGI1MDBhODJjYWM0ZWVhZjJiYmM1NzViNzhmZDg0N2RmNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKQEAgLTg2LDcgKzg2LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcHJpbnQoKTsKICNlbmRpZgogICAgICAgICAKLSAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlw
ZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9y
Jik7CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxB
Y3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0
aXZhdGlvbi5oCmluZGV4IDRiYjc2YzA2ZDkxYWIxYjQ5OTYwMTY3Mjk3ZTRiZGQ0MzE2MjczMjQu
LjRlNjE3NWQxYmE4YTMxODc4MWYxNDUwYTNlZmNmYjczZmZhZTQyNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAt
NDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogICAgIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggYTk0NGU1NWM2NTVjZDNhZDUxOTQx
MDFhYzI3MzllZDhjNWQwYmUzYi4uNTc0YTJlMWQwMjFhYzk0YTczMDFhYjhiMWZlNWFiZjk3MDU3
Zjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAg
ICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuaAppbmRleCBhNzc3MjIwYzY2YzY0ZTUwOTQ2MWI1N2FjNTJhMzE5ZmM0Y2UyNDg2Li5lMjMy
NDcxMWIxNTBhZDdlNTMxN2RlZWFkNzhkZjhlZTI5OTAwYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFz
cXVlcmFkZXNBc1VuZGVmaW5lZC5oCmluZGV4IGEwNDQ2NGE2MDYwZmVmNDE0NjNmMjYyZWZmMjk1
YmE4NjVmYWM5NTMuLjBjNDJhYmY2YzdmNTE0MmU1NWM3NzZmZjMyOTZlYTM5NWE1OTU0M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaApAQCAtNDcsNyArNDcs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKaW5kZXggZTE0ZDk3NzI2Njk1NTY4ODlhODM3NjNkMmFiZjI4OTA0MjQw
MzhjNC4uNzU1M2Y0YWJhZGU2MTEwY2Q4ZjNiYTFhOThiODkxZTI5Mzc5Y2E5NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0x
MzEsMTIgKzEzMSwxMSBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nUHJvdG90eXBlOjpzX2luZm8g
PSB7ICJTdHJpbmciLCAmU3RyaW5nT2JqZWN0OjpzX2luZm8sIDAsCiAqLwogCiAvLyBFQ01BIDE1
LjUuNAotU3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJp
bmcqIHN0cmluZykKK1N0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90eXBlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0
cmluZykKICAgICA6IFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSwg
c3RyaW5nKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKLSAgICBwdXRBbm9u
eW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiAgICAgLy8g
VGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIFN0cmluZ0NvbnN0cnVj
dG9yIGhhcyBiZWVuIGJ1aWx0CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigwKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCA2YTAzMTVmZTJiODJjYWUx
NzI0N2M2ZTFlNjNlNmYzYTg0MTRiNDg0Li4yMzdiMjBiYzY5MjkyOTI0NzRiYTU1ZTJhMGM3Mzcx
Mjc2ZThkNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTUyLDggKzUyLDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBTdHJp
bmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIENPTVBJTEVfQVNTRVJUKCFTdHJp
bmdPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCwgU3RyaW5nUHJvdG90eXBlX3N0b21wc19vbl95
b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255
bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCAyYmRmNWZkMjljYzQ4
ZGE1MDcxM2FjNjdlNDRiYjYyZjc3ZmM2NmE5Li5lMzVmMGM0ZDQ2ZmFkMjcyYzkzNTc3ZTA0YWZj
OTlmYmI2MGQxYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVtcFN0YXRpc3RpY3Mo
KQogI2VuZGlmCiB9CiAKLVN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNv
bnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25z
dCBDbGFzc0luZm8qIGNsYXNzSW5mbykKK1N0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm8pCiAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1
cmUuZ2V0KCkpCiAgICAgLCBtX3R5cGVJbmZvKHR5cGVJbmZvKQogICAgICwgbV9nbG9iYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2JqZWN0LCBXcml0ZUJhcnJpZXI8SlNHbG9iYWxP
YmplY3Q+OjpNYXlCZU51bGwpCkBAIC0xNzMsNyArMTczLDYgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1YKICAgICAsIG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoZmFsc2UpCiAgICAgLCBt
X2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAgLCBtX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hD
b3VudCgwKQotICAgICwgbV9hbm9ueW1vdXNTbG90Q291bnQoYW5vbnltb3VzU2xvdENvdW50KQog
ICAgICwgbV9wcmV2ZW50RXh0ZW5zaW9ucyhmYWxzZSkKICAgICAsIG1fZGlkVHJhbnNpdGlvbihm
YWxzZSkKIHsKQEAgLTE5NCw3ICsxOTMsNiBAQCBTdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEpCiAgICAgLCBtX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKGZh
bHNlKQogICAgICwgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cygwKQogICAgICwgbV9zcGVjaWZpY0Z1
bmN0aW9uVGhyYXNoQ291bnQoMCkKLSAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50KDApCiAgICAg
LCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKGZhbHNl
KQogewpAQCAtMjEzLDcgKzIxMSw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlKiBwcmV2aW91cykKICAgICAsIG1faGFzTm9u
RW51bWVyYWJsZVByb3BlcnRpZXMocHJldmlvdXMtPm1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRp
ZXMpCiAgICAgLCBtX2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAgLCBtX3NwZWNpZmljRnVu
Y3Rpb25UaHJhc2hDb3VudChwcmV2aW91cy0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQp
Ci0gICAgLCBtX2Fub255bW91c1Nsb3RDb3VudChwcmV2aW91cy0+YW5vbnltb3VzU2xvdENvdW50
KCkpCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKHByZXZpb3VzLT5tX3ByZXZlbnRFeHRlbnNp
b25zKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKHRydWUpCiB7CkBAIC0yNTMsNyArMjUwLDcgQEAg
dm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXAoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhKQogCiAgICAgZm9yIChwdHJkaWZmX3QgaSA9IHN0cnVjdHVyZXMuc2l6ZSgpIC0gMjsg
aSA+PSAwOyAtLWkpIHsKICAgICAgICAgc3RydWN0dXJlID0gc3RydWN0dXJlc1tpXTsKLSAgICAg
ICAgUHJvcGVydHlNYXBFbnRyeSBlbnRyeShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUtPm1f
bmFtZUluUHJldmlvdXMuZ2V0KCksIG1fYW5vbnltb3VzU2xvdENvdW50ICsgc3RydWN0dXJlLT5t
X29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3VzLCBzdHJ1Y3R1cmUtPm1f
c3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpOworICAgICAgICBQcm9wZXJ0eU1hcEVudHJ5
IGVudHJ5KGdsb2JhbERhdGEsIHRoaXMsIHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQo
KSwgc3RydWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3Vz
LCBzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpOwogICAgICAgICBt
X3Byb3BlcnR5VGFibGUtPmFkZChlbnRyeSk7CiAgICAgfQogfQpAQCAtMjkwLDkgKzI4Nyw3IEBA
IFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3Ry
dWN0dXJlKFN0cnVjdHVyZSogc3RydWN0CiAgICAgICAgIGlmIChzcGVjaWZpY1ZhbHVlSW5QcmV2
aW91cyAmJiBzcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyAhPSBzcGVjaWZpY1ZhbHVlKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIEFTU0VSVChleGlzdGluZ1RyYW5zaXRpb24tPm1fb2Zm
c2V0ICE9IG5vT2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ID0gZXhpc3RpbmdUcmFuc2l0aW9uLT5t
X29mZnNldCArIGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQ7Ci0gICAg
ICAgIEFTU0VSVChvZmZzZXQgPj0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCk7Ci0g
ICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50ID09IGV4aXN0aW5n
VHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQpOworICAgICAgICBvZmZzZXQgPSBleGlz
dGluZ1RyYW5zaXRpb24tPm1fb2Zmc2V0OwogICAgICAgICByZXR1cm4gZXhpc3RpbmdUcmFuc2l0
aW9uOwogICAgIH0KIApAQCAtMzIyLDggKzMxNyw2IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjph
ZGRQcm9wZXJ0eVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
CiAgICAgICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IHRvQ2FjaGVhYmxlRGljdGlvbmFyeVRy
YW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKICAgICAgICAgQVNTRVJUKHN0cnVjdHVy
ZSAhPSB0cmFuc2l0aW9uKTsKICAgICAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+cHV0U3BlY2lm
aWNWYWx1ZShnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljVmFs
dWUpOwotICAgICAgICBBU1NFUlQob2Zmc2V0ID49IHN0cnVjdHVyZS0+bV9hbm9ueW1vdXNTbG90
Q291bnQpOwotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9
PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIGlmICh0cmFuc2l0
aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgPiB0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSgpKQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+Z3Jvd1Byb3BlcnR5U3RvcmFnZUNh
cGFjaXR5KCk7CiAgICAgICAgIHJldHVybiB0cmFuc2l0aW9uOwpAQCAtMzUwLDEzICszNDMsMTAg
QEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSoKICAgICB9CiAKICAgICBvZmZzZXQgPSB0cmFuc2l0
aW9uLT5wdXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRl
cywgc3BlY2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1Y3R1cmUtPm1fYW5v
bnltb3VzU2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RD
b3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgaWYgKHRyYW5z
aXRpb24tPnByb3BlcnR5U3RvcmFnZVNpemUoKSA+IHRyYW5zaXRpb24tPnByb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5KCkpCiAgICAgICAgIHRyYW5zaXRpb24tPmdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSgpOwogCi0gICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBvZmZzZXQgLSBzdHJ1Y3R1cmUt
Pm1fYW5vbnltb3VzU2xvdENvdW50OwotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Ns
b3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKyAgICB0cmFu
c2l0aW9uLT5tX29mZnNldCA9IG9mZnNldDsKICAgICBzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblRh
YmxlLmFkZChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICByZXR1cm4gdHJhbnNpdGlvbjsK
IH0KQEAgLTM2OCw4ICszNTgsNiBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVy
dHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dQogICAgIFN0cnVj
dHVyZSogdHJhbnNpdGlvbiA9IHRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5VHJhbnNpdGlvbihnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpOwogCiAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+cmVtb3ZlKHBy
b3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1Y3R1cmUtPm1fYW5vbnltb3Vz
U2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9
PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAKICAgICByZXR1cm4gdHJhbnNp
dGlvbjsKIH0KQEAgLTM4NSw4ICszNzMsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y2hhbmdl
UHJvdG90eXBlVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdAogICAg
IHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEp
OwogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3Bl
cnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bp
bm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFu
b255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsK
KwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC00MDksOCArMzk2LDcgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnUKICAgICAgICAgYm9vbCByZW1vdmVkID0gdHJhbnNpdGlvbi0+ZGVz
cGVjaWZ5RnVuY3Rpb24oZ2xvYmFsRGF0YSwgcmVwbGFjZUZ1bmN0aW9uKTsKICAgICAgICAgQVNT
RVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVkKTsKICAgICB9Ci0gICAgCi0gICAgQVNTRVJUKHN0
cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xv
dENvdW50KCkpOworCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CiAKQEAgLTQyMyw4ICs0MDks
NyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbihKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZQogICAgIHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQ
cm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwogICAgIHRyYW5zaXRpb24tPm1fcHJv
cGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJh
bnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVl
OwotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRy
YW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKwogICAgIHJldHVybiB0cmFuc2l0aW9u
OwogfQogCkBAIC00MzgsOCArNDIzLDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnRvRGljdGlv
bmFyeVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUKICAgICB0
cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxl
KGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwogICAgIHRyYW5zaXRpb24tPm1faXNQaW5uZWRQcm9w
ZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICB0cmFuc2l0aW9uLT5tX2RpY3Rpb25hcnlLaW5kID0ga2lu
ZDsKLSAgICAKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSA9PSB0
cmFuc2l0aW9uLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CisKICAgICByZXR1cm4gdHJhbnNpdGlv
bjsKIH0KIApAQCAtNDkzLDcgKzQ3Nyw2IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpwcmV2ZW50
RXh0ZW5zaW9uc1RyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1CiAgICAg
dHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwogICAgIHRyYW5zaXRp
b24tPm1fcHJldmVudEV4dGVuc2lvbnMgPSB0cnVlOwogCi0gICAgQVNTRVJUKHN0cnVjdHVyZS0+
YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkp
OwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC01MzksNyArNTIyLDYgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNPYmoKICAgICBpZiAoaXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgewog
ICAgICAgICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxlKTsKIAotICAgICAgICB1bnNpZ25lZCBhbm9u
eW1vdXNTbG90Q291bnQgPSBtX2Fub255bW91c1Nsb3RDb3VudDsKICAgICAgICAgc2l6ZV90IHBy
b3BlcnR5Q291bnQgPSBtX3Byb3BlcnR5VGFibGUtPnNpemUoKTsKICAgICAgICAgVmVjdG9yPEpT
VmFsdWU+IHZhbHVlcyhwcm9wZXJ0eUNvdW50KTsKIApAQCAtNTQ4LDEyICs1MzAsMTIgQEAgU3Ry
dWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNPYmoKICAgICAgICAgZm9yIChQcm9wZXJ0eVRhYmxlOjppdGVyYXRv
ciBpdGVyID0gbV9wcm9wZXJ0eVRhYmxlLT5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyLCAr
K2kpIHsKICAgICAgICAgICAgIHZhbHVlc1tpXSA9IG9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KGl0
ZXItPm9mZnNldCk7CiAgICAgICAgICAgICAvLyBVcGRhdGUgcHJvcGVydHkgdGFibGUgdG8gaGF2
ZSB0aGUgbmV3IHByb3BlcnR5IG9mZnNldHMKLSAgICAgICAgICAgIGl0ZXItPm9mZnNldCA9IGFu
b255bW91c1Nsb3RDb3VudCArIGk7CisgICAgICAgICAgICBpdGVyLT5vZmZzZXQgPSBpOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCBwcm9wZXJ0eSB2
YWx1ZXMgaW50byB0aGVpciBmaW5hbCBsb2NhdGlvbnMKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7IGkrKykKLSAgICAgICAgICAgIG9iamVjdC0+cHV0RGly
ZWN0T2Zmc2V0KGdsb2JhbERhdGEsIGFub255bW91c1Nsb3RDb3VudCArIGksIHZhbHVlc1tpXSk7
CisgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBpLCB2YWx1
ZXNbaV0pOwogCiAgICAgICAgIG1fcHJvcGVydHlUYWJsZS0+Y2xlYXJEZWxldGVkT2Zmc2V0cygp
OwogICAgIH0KQEAgLTU3NCw3ICs1NTYsNiBAQCBzaXplX3QgU3RydWN0dXJlOjphZGRQcm9wZXJ0
eVdpdGhvdXRUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSQogICAg
IG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKIAogICAgIHNpemVfdCBvZmZzZXQgPSBw
dXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3Bl
Y2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7
CiAgICAgaWYgKHByb3BlcnR5U3RvcmFnZVNpemUoKSA+IHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCkpCiAgICAgICAgIGdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwogICAgIHJldHVybiBv
ZmZzZXQ7CkBAIC01ODksNyArNTcwLDYgQEAgc2l6ZV90IFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVy
dHlXaXRob3V0VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnMKIAogICAg
IG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gcmVt
b3ZlKHByb3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RD
b3VudCk7CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIApAQCAtNjM3LDcgKzYxNyw2IEBAIHNpemVf
dCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cmluZ0ltcGwqIHBy
b3BlcnR5TmFtZSwgdW5zaWduCiAKICAgICBhdHRyaWJ1dGVzID0gZW50cnktPmF0dHJpYnV0ZXM7
CiAgICAgc3BlY2lmaWNWYWx1ZSA9IGVudHJ5LT5zcGVjaWZpY1ZhbHVlLmdldCgpOwotICAgIEFT
U0VSVChlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsKICAgICByZXR1cm4g
ZW50cnktPm9mZnNldDsKIH0KIApAQCAtNjg3LDggKzY2Niw3IEBAIHNpemVfdCBTdHJ1Y3R1cmU6
OnB1dFNwZWNpZmljVmFsdWUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlm
aWVyJiBwCiAgICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+aGFzRGVsZXRlZE9mZnNldCgpKQogICAg
ICAgICBuZXdPZmZzZXQgPSBtX3Byb3BlcnR5VGFibGUtPmdldERlbGV0ZWRPZmZzZXQoKTsKICAg
ICBlbHNlCi0gICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpICsgbV9h
bm9ueW1vdXNTbG90Q291bnQ7Ci0gICAgQVNTRVJUKG5ld09mZnNldCA+PSBtX2Fub255bW91c1Ns
b3RDb3VudCk7CisgICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpOwog
CiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGQoUHJvcGVydHlNYXBFbnRyeShnbG9iYWxEYXRhLCB0
aGlzLCByZXAsIG5ld09mZnNldCwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSkpOwogCkBAIC03
MTIsNyArNjkwLDYgQEAgc2l6ZV90IFN0cnVjdHVyZTo6cmVtb3ZlKGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAgc2l6ZV90IG9m
ZnNldCA9IHBvc2l0aW9uLmZpcnN0LT5vZmZzZXQ7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fu
b255bW91c1Nsb3RDb3VudCk7CiAKICAgICBtX3Byb3BlcnR5VGFibGUtPnJlbW92ZShwb3NpdGlv
bik7CiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGREZWxldGVkT2Zmc2V0KG9mZnNldCk7CkBAIC04
NDQsNyArODIxLDYgQEAgdm9pZCBTdHJ1Y3R1cmU6OmNoZWNrQ29uc2lzdGVuY3koKQogICAgICAg
ICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSBtX3Byb3BlcnR5VGFibGUtPmVuZCgpOwog
ICAgICAgICBmb3IgKFByb3BlcnR5VGFibGU6Oml0ZXJhdG9yIGl0ZXIgPSBtX3Byb3BlcnR5VGFi
bGUtPmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAgICAgICAgICAgIEFTU0VSVCgh
KGl0ZXItPmF0dHJpYnV0ZXMgJiBEb250RW51bSkpOwotICAgICAgICAgICAgQVNTRVJUKGl0ZXIt
Pm9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMGY0ZjQ4YzgzNDEy
YzEzNTBkMDkzNGMxYjVmZjYzMzc2ODI5NmZjMy4uMzAxYmE1ZjRhYjkwMzUyNDc2ZDQyOTFhNGJl
NDI4OGUxODk3ZGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmgKQEAgLTYyLDExICs2MiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVm
IEpTQ2VsbCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Ns
b3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCisgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8s
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NF
UlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgQVNTRVJUKGNs
YXNzSW5mbyk7Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xvdENvdW50LCBj
bGFzc0luZm8pOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgdHlwZUluZm8sIGNsYXNzSW5mbyk7CiAgICAgICAg
ICAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAg
cmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQpAQCAtMTMzLDcgKzEzMyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ3Jvd1Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CiAg
ICAgICAgIHVuc2lnbmVkIHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkgY29uc3QgeyBBU1NFUlQo
c3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1cm4gbV9wcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eTsgfQotICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eVN0b3JhZ2VTaXplKCkg
Y29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1
cm4gbV9hbm9ueW1vdXNTbG90Q291bnQgKyAobV9wcm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRh
YmxlLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZz
ZXQgKyAxKSk7IH0KKyAgICAgICAgdW5zaWduZWQgcHJvcGVydHlTdG9yYWdlU2l6ZSgpIGNvbnN0
IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsgcmV0dXJuICht
X3Byb3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUtPnByb3BlcnR5U3RvcmFnZVNpemUoKSA6
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29mZnNldCArIDEpKTsgfQogICAgICAgICBib29sIGlz
VXNpbmdJbmxpbmVTdG9yYWdlKCkgY29uc3Q7CiAKICAgICAgICAgc2l6ZV90IGdldChKU0dsb2Jh
bERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpAQCAtMTUwLDkgKzE1MCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHNldEhhc0dldHRlclNldHRlclByb3Bl
cnRpZXMoYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKSB7IG1faGFzR2V0dGVyU2V0dGVy
UHJvcGVydGllcyA9IGhhc0dldHRlclNldHRlclByb3BlcnRpZXM7IH0KIAogICAgICAgICBib29s
IGhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNOb25FbnVt
ZXJhYmxlUHJvcGVydGllczsgfQotCi0gICAgICAgIGJvb2wgaGFzQW5vbnltb3VzU2xvdHMoKSBj
b25zdCB7IHJldHVybiAhIW1fYW5vbnltb3VzU2xvdENvdW50OyB9Ci0gICAgICAgIHVuc2lnbmVk
IGFub255bW91c1Nsb3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYW5vbnltb3VzU2xvdENvdW50
OyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3By
b3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUtPmlzRW1wdHkoKSA6IG1fb2Zmc2V0ID09IG5v
T2Zmc2V0OyB9CiAKQEAgLTE5MSw3ICsxODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
c3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIHVuc2lnbmVkIGFub255bW91c1Nsb3RD
b3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CisgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEm
LCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIGNv
bnN0IENsYXNzSW5mbyopOwogICAgICAgICBTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJik7CiAgICAg
ICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBjb25zdCBTdHJ1Y3R1cmUqKTsKIApAQCAtMjc4
LDEwICsyNzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgbV9hdHRyaWJ1
dGVzSW5QcmV2aW91cyA6IDc7CiAjZW5kaWYKICAgICAgICAgdW5zaWduZWQgbV9zcGVjaWZpY0Z1
bmN0aW9uVGhyYXNoQ291bnQgOiAyOwotICAgICAgICB1bnNpZ25lZCBtX2Fub255bW91c1Nsb3RD
b3VudCA6IDU7CiAgICAgICAgIHVuc2lnbmVkIG1fcHJldmVudEV4dGVuc2lvbnMgOiAxOwogICAg
ICAgICB1bnNpZ25lZCBtX2RpZFRyYW5zaXRpb24gOiAxOwotICAgICAgICAvLyAzIGZyZWUgYml0
cworICAgICAgICAvLyA4IGZyZWUgYml0cwogICAgIH07CiAKICAgICBpbmxpbmUgc2l6ZV90IFN0
cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQpAQCAtMjkyLDcgKzI4OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAgICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5
ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS5pbXBsKCkpLmZpcnN0OwotICAg
ICAgICBBU1NFUlQoIWVudHJ5IHx8IGVudHJ5LT5vZmZzZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291
bnQpOwogICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS0+b2Zmc2V0IDogbm90Rm91bmQ7CiAg
ICAgfQogCkBAIC0zMDQsNyArMjk5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gbm90Rm91bmQ7CiAKICAgICAgICAgUHJvcGVydHlNYXBFbnRyeSogZW50cnkgPSBtX3By
b3BlcnR5VGFibGUtPmZpbmRXaXRoU3RyaW5nKG5hbWUuaW1wbCgpKS5maXJzdDsKLSAgICAgICAg
QVNTRVJUKCFlbnRyeSB8fCBlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsK
ICAgICAgICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IG5vdEZvdW5kOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hh
aW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKaW5k
ZXggYzhlNDJiMjZhNzJjOTZjZDAzYzQ2NjQ2YzYyMDIxNDRiZTUwYjM2Yy4uY2RkNjRlZjZhNjFh
ZTQxNDQwMzNiMDdmYzFlYzE5MjcwMzFhZGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaGVhZCgpIHsgcmV0dXJuIG1f
dmVjdG9yLmdldCgpOyB9CiAgICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYp
OwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxk
cmVuKSwgMCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsgfQogICAgICAgICAKICAgICAgICAgc3Rh
dGljIENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IGE3Mzkz
ODY3NzQwYTA2NTViMzU0Yzk2ZjBhNTMzMTM5ZmQzNzhiNTEuLjZmNmViODM5MzFkMWI5ZDIxNzk0
YWY0MmVjZWM1ZjNmMzEyZmIwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG5l
ZWQgYW4gYW5vbnltb3VzIHNsb3QgY291bnQgYW55bW9yZQorCisgICAgICAgICogVXNlck9iamVj
dEltcC5oOgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAx
MS0wOS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0
aGUgQ29tcGxldGlvbiBvYmplY3QgZnJvbSBKU0MsIEkgaGF2ZSBuZXZlciBsaWtlZCBpdApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggMjZjZWVkY2RjMDUzMzNmMmIxMTcw
MGNlMjFmNmFlMzdmNzJiNjE5YS4uNDNmZjBkYThkNzU2YWZlNmZmM2Q3Yzg2MzlhOWQzMTNhYWQw
NWJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC02OCw3ICs2OCw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMp
LCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEyYmI0NjlmYTBj
MDNjNTQ5OTI0ZjU1NDMyYWQyMWZjMmRhZTNhZS4uZjllMmRkMjkyNWIxYjY0ZTBjMDZmODRjZjA0
Y2M1ZTZhMmUxMDFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDExLTA5LTA5ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQg
Zm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFub255bW91cyBz
bG90cywgdGhpcyByZXF1aXJlZCBtb2RpZnlpbmcKKyAgICAgICAgYmluZGluZ3MgZ2VuZXJhdGlv
biB0byBhZGQgbWVtYmVyIHZhcmlhYmxlcyBmb3IgY2FjaGVkIGF0dHJpYnV0ZXMsCisgICAgICAg
IGFuZCBvdmVycmlkZSB2aXNpdENoaWxkcmVuIHdpdGggdGhlIG5lY2Vzc2FyeSBsb2dpYyB0byBt
YXJrIHRob3NlCisgICAgICAgIG5ldyBtZW1iZXJzLgorCisgICAgICAgIEkgYWRkZWQgYmluZGlu
Z3MgZ2VuZXJhdGlvbiB0ZXN0cyBmb3IgdGhlc2UgdmFsdWVzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3Rvck9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVs
bDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01l
c3NhZ2VFdmVudDo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6aW5p
dE1lc3NhZ2VFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRleHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0SW50ZXJmYWNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RPYmo6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9ialByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJH
ZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpDUnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBicmlkZ2UvYy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50
aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVudGltZU1ldGhvZDo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6Ok9iakNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGlt
ZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAg
ICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDEx
LTA5LTA5ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluaXRp
YWxpemUgRXhjZXB0aW9uQ29kZSBpbiBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5kZXggYTdhOTA3
ZGY0Y2FiZDczMWRmZjFjYjk1ZDA4ZjVjY2E5ZjNjNzEzOS4uMTllNjQ1ZmJkZmE3OGE0Zjk0ZTBl
ZGQzNGFmNzk1Mjk4NDE5NzJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAg
ICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggNDY1MzBjMzgxNTMwM2Ey
NWUzOThhMGJhYjMxMWYzOWYxNzdlNmFkNC4uYjg5YmUxNzE0ZWU4YWY0NzdiYTM4NzVmZTJiODBm
MmQ1OWE0OWY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
QEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCmluZGV4IGUwYTZhMDcyYWU4YjdlZDBjOTYzYzM1MzFhY2I2NjJiNzlkNGVmZTkuLmUx
YWE0NjRhYzZkZDhmNTZiMDlmYTljMzA3MmNlZTIxNmNjNWM1YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNzEsNyArNzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggZjc3MTgwODdjZTU4MzBhNmU1YzY2
NzE5YTU4NzgwYmEzNmI5MDY0Yi4uYTJjNDc4NTUzMjg5N2UwNjE4YzE5NTkwNDcyOTA4M2Y3NzM4
MWQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
QEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBK
U0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzUHJvZmlsaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggNTM0ZWEyYWNmMjY2YjFjMDUxZTNkOTJl
NWQzNTAyOGU5NzUyN2ViMC4uMWQ2Y2VjODRmNTdiNDc2YzhkZTNkY2I3MDdlY2YxY2UzNjM3NWEz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApA
QCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpT
Qzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgICAgICBET01X
cmFwcGVyV29ybGQqIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCA2YTFiNDM4OTM4ZmExNDFiNDgw
YzAxZWI4ZGY0MDE3Zjk2ZjEzZTliLi5iMjUyYjAyNDRjZWI4NmZjYTY0ZjYwNWI1ODNhZjIxZTJk
NDlkN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFn
ZUNvbnN0cnVjdG9yLmgKaW5kZXggM2M5MzUxYzc0ZmE0MGM4YTQxY2E3MGJjOTg2YWIyOGVlMmNl
ZDAxOC4uMzVjNDQzNDA2NDE2MjNjYTQwYjU1YTYwYjY1OTU4ZTliYWI3NGY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRleCBmYjAzNWM1ZTIwNzZlYjU5NDExYTExYTU2
NDQzZmVlYjRjZjZmOTFhLi44YmU4MWJlY2NiZDRlZWM0Yjk2NjU2M2QwYjhmMjIzNGQzNzJhMTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSlNWYWx1
ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgaWYg
KEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBnZXRBbm9ueW1vdXNWYWx1ZShKU01lc3NhZ2VFdmVudDo6
ZGF0YVNsb3QpKQorICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKQog
ICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CiAKICAgICBNZXNzYWdlRXZlbnQqIGV2ZW50ID0g
c3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oaW1wbCgpKTsKQEAgLTczLDcgKzczLDcgQEAgSlNW
YWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgfQog
CiAgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8gZGVzZXJpYWxpemUg
dGhlIHZhbHVlIGFnYWluLgotICAgIGNvbnN0X2Nhc3Q8SlNNZXNzYWdlRXZlbnQqPih0aGlzKS0+
cHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBKU01lc3NhZ2VFdmVudDo6ZGF0
YVNsb3QsIHJlc3VsdCk7CisgICAgY29uc3RfY2FzdDxKU01lc3NhZ2VFdmVudCo+KHRoaXMpLT5t
X2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgSlNDOjpKU1ZhbHVlIEpTTWVzc2FnZUV2
ZW50Ojppbml0TWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXN1
bHQgPSBzZXJpYWxpemVkVmFsdWUtPmRlc2VyaWFsaXplKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBO
b25UaHJvd2luZyk7CiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKLSAgICBw
dXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIEpTTWVzc2FnZUV2ZW50OjpkYXRh
U2xvdCwgcmVzdWx0KTsKKyAgICBtX2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
cmVzdWx0KTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDY5MzlmYmY4Yjg5
MWZkZTMwMjU5OGFkNjZjNTcwOGJhZGExNzNjZmQuLjM5MjYxYTA5N2Q1NThlY2QwOTA0NmFhNjgy
MTA2MWEzOGJlODhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09w
dGlvbkNvbnN0cnVjdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAppbmRleCAwYjY2
OGRmNzBlNWM5ZGYyN2Q4ODNiMmEwZTFkYjU2N2QwNmJlN2Q2Li5iMDg2MzM2YzQ0MmQ1OGRkMzhl
N2E2MzliNGJiNjBmOGFkZjBiZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMDA0M2NiZDFkOTFkMzU2MjZjMDBlNTkz
OTE1ZGJkM2Y5NzJhMWNhOS4uN2NiMmI0M2JiMzEzZjU1NThiZDY0OWNjNTcyZGQ5OTY1Y2Q3MjA2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KQEAgLTgwMywxNSArODAzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCiAgICAg
ICAgICIgICAge1xuIiAuCi0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAgICAi
ICAgIH1cblxuIik7CiAKLSAgICAjIHZpc2l0IGZ1bmN0aW9uCi0gICAgaWYgKCRuZWVkc01hcmtD
aGlsZHJlbikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImKTtcblxuIik7Ci0gICAgICAgICRzdHJ1
Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIn0gPSAxOwotICAgIH0KLQog
ICAgICMgQ3VzdG9tIHB1c2hFdmVudEhhbmRsZXJTY29wZSBmdW5jdGlvbgogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBwdXNoRXZlbnRI
YW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKikgY29uc3Q7
XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1c2hFdmVu
dEhhbmRsZXJTY29wZSJ9OwogCkBAIC04NjgsMTYgKzg2MiwxOSBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAgICAgICAgICRudW1DdXN0b21BdHRyaWJ1dGVzKysgaWYgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0gfHwgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tR2V0dGVyIn07CiAg
ICAgICAgICAgICAkbnVtQ3VzdG9tQXR0cmlidXRlcysrIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVNldHRlciJ9IHx8ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ0N1c3RvbVNldHRlciJ9OwogICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNh
Y2hlZEF0dHJpYnV0ZSJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZSAuICJTbG90ID0gJG51bUNhY2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291
bnQ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6
V3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4gbV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lIC4gIjtcbiIpOwogICAgICAgICAgICAgICAgICRudW1DYWNoZWRBdHRyaWJ1dGVzKys7Cisg
ICAgICAgICAgICAgICAgJG5lZWRzTWFya0NoaWxkcmVuID0gMTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB1c2luZyAkcGFyZW50Q2xhc3NOYW1lIiAu
ICI6OnB1dEFub255bW91c1ZhbHVlO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdXNpbmcgJHBhcmVudENsYXNzTmFtZSIgLiAiOjpnZXRBbm9ueW1vdXNWYWx1ZTtcbiIp
OworICAgICMgdmlzaXQgZnVuY3Rpb24KKyAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuKSB7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRy
ZW4oSlNDOjpTbG90VmlzaXRvciYpO1xuXG4iKTsKKyAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJK
U0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9IDE7CiAgICAgfQorCiAgICAgaWYgKCRudW1D
dXN0b21BdHRyaWJ1dGVzID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG4g
ICAgLy8gQ3VzdG9tIGF0dHJpYnV0ZXNcbiIpOwogCkBAIC05MjEsMTIgKzkxOCw2IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuIik7CiAgICAgfQotICAgIAotICAgICMg
YW5vbnltb3VzIHNsb3RzCi0gICAgaWYgKCRudW1DYWNoZWRBdHRyaWJ1dGVzKSB7Ci0gICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0g
JG51bUNhY2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7XG4iKTsKLSAg
ICB9CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7CiAgICAgIyBD
b25zdHJ1Y3RvcgpAQCAtMTA0Niw3ICsxMDM3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCiAg
ICAgICAgICIgICAge1xuIiAuCi0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAg
ICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpO1xuIik7CkBAIC0xNTI5LDIzICsxNTIwLDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpO1xuIik7Ci0gICAgaWYg
KCRudW1DYWNoZWRBdHRyaWJ1dGVzID4gMCkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBmb3IgKHVuc2lnbmVkIGkgPSBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7IGkgPCBBbm9u
eW1vdXNTbG90Q291bnQ7IGkrKylcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGksIEpT
VmFsdWUoKSk7XG4iKTsKLSAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwog
Ci0gICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tTWFya0Z1bmN0aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRv
cilcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2lu
Zm8pO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJU
KFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4oKSk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6dmlz
aXRDaGlsZHJlbih2aXNpdG9yKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpbXBsKCktPnZpc2l0SlNFdmVudExpc3RlbmVycyh2aXNpdG9yKTtcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfQotCiAgICAgaWYgKCEkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFeHRlbmRzRE9NR2xvYmFsT2JqZWN0In0pIHsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90
b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CkBAIC0xNjE0LDYgKzE1OTAsMTAg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09i
amVjdChzbG90QmFzZSkpO1xuIik7CiAKKyAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0cmlidXRlIn0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgJG5lZWRzTWFya0NoaWxkcmVuID0gMTsKKyAgICAgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2hlY2tEb21haW5TZWN1cml0eSJ9ICYmIAogICAgICAgICAgICAgICAgICAgICAgICAgISRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tEb21h
aW5TZWN1cml0eSJ9ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5T25H
ZXQifSkgewpAQCAtMTY1OSw3ICsxNjM5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAkY2FjaGVJbmRleCA9ICRjdXJyZW50Q2FjaGVkQXR0cmlidXRlOwogICAgICAgICAgICAgICAg
ICAgICAgICAgJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGUrKzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gY2Fz
dGVkVGhpcy0+Z2V0QW5vbnltb3VzVmFsdWUoIiAuICRjbGFzc05hbWUgLiAiOjoiIC4gJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIlNsb3QpKVxuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1f
IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIuZ2V0KCkpXG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gY2FjaGVk
VmFsdWU7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC0xNjg0LDcgKzE2NjQsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXRBbm9ueW1vdXNW
YWx1ZShleGVjLT5nbG9iYWxEYXRhKCksICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSAuICJTbG90LCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbV8iIC4gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCByZXN1
bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIHJlc3VsdDtcbiIpOwogCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
QEAgLTIxODgsNiArMjE2OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
ICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0aW9u
LCAkZnVuY3Rpb25TdHJpbmcsICRwYXJhbUluZGV4LCAiICAgICIsICRzdmdQcm9wZXJ0eVR5cGUs
ICRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAogICAgICAgICAgICAgaWYg
KCRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDEg
JiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntvdmVybG9hZHN9
fSkgewpAQCAtMjE5OSw2ICsyMTgwLDI5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcblxuIik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRy
ZW4gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU1hcmtGdW5jdGlv
biJ9KSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9
Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4o
KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnZpc2l0
Q2hpbGRyZW4odmlzaXRvcik7XG4iKTsKKyAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJFdmVudFRhcmdldCJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaW1wbCgpLT52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7
XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRl
cyA+IDApIHsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+YXR0cmlidXRl
c30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRfOworICAgICAgICAg
ICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2FjaGVkQXR0cmlidXRlIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChtXyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAi
KVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgdmlzaXRvci5hcHBlbmQoJm1fIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAg
IH0KKyAgICAgICAgZGllICJDYW4ndCBnZW5lcmF0ZSBiaW5kaW5nIGZvciBjbGFzcyB3aXRoIGNh
Y2hlZCBhdHRyaWJ1dGUgYW5kIGN1c3RvbSBtYXJrLiIgaWYgKCgkbnVtQ2FjaGVkQXR0cmlidXRl
cyA+IDApIGFuZCAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTWFya0Z1
bmN0aW9uIn0pKTsKICAgICB9CiAKICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDApIHsKQEAgLTMx
MTMsNyArMzExNyw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KIAogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInByb3RlY3RlZDpcbiIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBjNTY2ZmE5NzhjZmZlOTVjYTU1M2FiMjBkMGU3Nzkz
ZWZkZWQyMmZiLi5iNzAwMWUyYzVlZmE1ZmZiN2NhZDkxZTQyOWQzMTJmMDlhZjA0OGU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsKICAgICB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVu
dHNIYXNJbnN0YW5jZSB8IERPTUNvbnN0cnVjdG9yT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuaAppbmRleCBiNzRkNjkxODEwMGJjZjg0ZGUwYWU4MTQ0ZjUyYWUwY2EyODU3
ZDYwLi40MzJmNzNiNzRhYTM4MWQxODFhN2MxMzE5MjI1YWFhY2ZlMWVmZGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0
b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC03NCw3ICs3NCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAg
IHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCA3ZDNkOTAyMWQ2NTAwNzQ3
MWJkY2VkYTBhYTZlMzg5NmVhMDNmZThhLi5mNjI1YWQ3MjM5OGE2OWFiNmU1MWJmNmUwZWYxODgy
ZDM4ODNiMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIHByb3Rl
Y3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwg
RE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggZTM1NWFkODAwODhmYzZkNTg0ZDdlNWRlMjI5
NzBhYWQ1ZDdmNmJlZC4uZDRkNWY2NTQxOWVkZDkwZWU5NjY1MGM5N2IxOTJlOGZkNzg1MDNjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00NCw3ICs0
NCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMg
SlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDNhM2Zh
NTc1MzgwNWFkNzU4YzZkMmIxYjkzZGYxN2JkN2Y2M2UzNTQuLjI2OGM4MGFiM2NlYzhhMTJkMDBi
NjhiYjIyZDgwNWRhZmI4ZmY1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xMTYsNiArMTE2LDggQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogI2lmIEVO
QUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKICAgICB7ICJjb25kaXRpb25h
bEF0dHI2IiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yIFRIVU5LX0dFTkVS
QVRPUigwKSB9LAogI2VuZGlmCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMSIsIERvbnREZWxldGUg
fCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJB
VE9SKDApIH0sCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMiIsIERvbnREZWxldGUgfCBSZWFkT25s
eSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpDYWNoZWRBdHRyaWJ1dGUyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0s
CiAgICAgeyAiZGVzY3JpcHRpb24iLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRGVzY3JpcHRp
b24pLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJpZCIsIERvbnRE
ZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqSWQpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqSWQgVEhVTktfR0VORVJBVE9SKDAp
IH0sCiAgICAgeyAiaGFzaCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpIYXNoKSwgKGludHB0
cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCkBAIC0xMjQsNyArMTI2LDcgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogfTsKIAogI3VuZGVm
IFRIVU5LX0dFTkVSQVRPUgotc3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpT
VGVzdE9ialRhYmxlID0geyAxMzQsIDEyNywgSlNUZXN0T2JqVGFibGVWYWx1ZXMsIDAgfTsKK3N0
YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsgMTM1
LCAxMjcsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxlIGZvciBjb25z
dHJ1Y3RvciAqLwogI2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5l
cmF0b3IpICwgZ2VuZXJhdG9yCkBAIC0xNzksNyArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1l
bnRzSGFzSW5zdGFuY2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CkBA
IC02NjksNiArNjcxLDMyIEBAIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwKIAogI2VuZGlmCiAKK0pT
VmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
c2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOworICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9jYWNoZWRB
dHRyaWJ1dGUxLmdldCgpKQorICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgVGVzdE9i
aiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAg
SlNWYWx1ZSByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTEoKSA/IGltcC0+Y2FjaGVkQXR0
cmlidXRlMSgpLT5kZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSkg
OiBqc051bGwoKTsKKyAgICBtX2NhY2hlZEF0dHJpYnV0ZTEuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKK0pTVmFsdWUganNU
ZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRp
Y19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOworICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9jYWNoZWRBdHRyaWJ1dGUy
LmdldCgpKQorICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgVGVzdE9iaiogaW1wID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIoKSA/IGltcC0+Y2FjaGVkQXR0cmlidXRlMigp
LT5kZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSkgOiBqc051bGwo
KTsKKyAgICBtX2NhY2hlZEF0dHJpYnV0ZTIuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
cmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKIEpTVmFsdWUganNUZXN0T2JqRGVz
Y3JpcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlm
aWVyJikKIHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RP
YmoqPihhc09iamVjdChzbG90QmFzZSkpOwpAQCAtMTgxNCw2ICsxODQyLDE4IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhPcHRpb25hbChFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Cit2b2lkIEpTVGVzdE9iajo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKK3sK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJ
TEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisgICAgQmFzZTo6dmlz
aXRDaGlsZHJlbih2aXNpdG9yKTsKKyAgICBpZiAobV9jYWNoZWRBdHRyaWJ1dGUxKQorICAgICAg
ICB2aXNpdG9yLmFwcGVuZCgmbV9jYWNoZWRBdHRyaWJ1dGUxKTsKKyAgICBpZiAobV9jYWNoZWRB
dHRyaWJ1dGUyKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9jYWNoZWRBdHRyaWJ1dGUyKTsK
K30KKwogLy8gQ29uc3RhbnQgZ2V0dGVycwogCiBKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVF
XzAoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRl
eCA0ZDBmNzk3YzNkYzUyNTliN2JmYzE5YTAyOTg3OTc0NjllMTdmM2JmLi5mYjc0YjU2MDk5Nzll
MjY2NDM1ZDdkNTQ1OWJkNzY2YWMwMzQxOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC00NSwxMCArNDUsMTQgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2Fj
aGVkQXR0cmlidXRlMTsKKyAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2Fj
aGVkQXR0cmlidXRlMjsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNsb3RW
aXNpdG9yJik7CisKIAogICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCiAgICAgSlNDOjpKU1ZhbHVl
IGN1c3RvbUF0dHIoSlNDOjpFeGVjU3RhdGUqKSBjb25zdDsKQEAgLTYzLDcgKzY3LDcgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8VGVzdE9iaj4gbV9pbXBsOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxUZXN0
T2JqPik7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogfTsKIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCosIFRlc3RPYmoqKTsKQEAgLTgzLDEzICs4NywxMyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEpTVGVzdE9i
alByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsgfQog
cHJvdGVjdGVkOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBCYXNlOjpT
dHJ1Y3R1cmVGbGFnczsKIH07CiAKIC8vIEZ1bmN0aW9ucwpAQCAtMjAxLDYgKzIwNSw4IEBAIEpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsCiB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUp
OwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lk
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogSlND
OjpKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpJZChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2
b2lkIHNldEpTVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
SlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCmluZGV4IDIyMWNhNGRmZTY1NzkyM2ZmNDUzY2QwODUxMGUyMzFmYzE3
ODBmZGMuLmE1ODI1YjJmYmU1MWMwOGRkNGRhZmFhMWQyZTM0YmU5N2YzYTdlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
CkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0lu
Zm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
Qzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlND
OjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIHByb3RlY3Rl
ZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9N
Q29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDZkZmE3ODEwZWMzNjMz
ODE5NmE3YmNmOTQzYjYyYWM4NTJhY2U5OGYuLmMxNGRkOTBiNGZiNjY0ZTQyNmFjZTI3YjMwNjA2
OGZlNWRhMzgwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTc0
LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2lu
Zm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4
IDRhY2FlNmE5MzhlODBlYzAyZGVjMDRhMDgxMGU3NzMyNTk2NTgzODAuLjc1YjQ5YWJjMjg0MzE1
ZTMxNTcwYjk2OWJiMTU5Y2QyYTE4N2M5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTE0Niw2ICsxNDYsMTEgQEAgbW9kdWxl
IHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0
aW9uMl0gVGVzdE9iamVjdENDb25zdHJ1Y3RvciBjb25kaXRpb25hbEF0dHI2OwogCiAjaWYgZGVm
aW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVkQXR0cmlidXRlMTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIGFueSBjYWNoZWRBdHRyaWJ1
dGUyOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElO
R19KUykKICAgICAgICAgLy8gT3ZlcmxvYWRzCiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1l
dGhvZChpbiBUZXN0T2JqIG9iakFyZywgaW4gRE9NU3RyaW5nIHN0ckFyZyk7CiAgICAgICAgIHZv
aWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFyZywgaW4gW09wdGlvbmFsXSBs
b25nIGludEFyZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGVkNjMyZGY1NmRkM2UxOTQyMjk3ZDU0Mzg3MjE0
YTA0NmUwMWJiMmUuLmU1MGI5MmM0YzA5MDUxOTJmYjE0MzlmYmMwNjY5NTlkY2EyMWU4MzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQu
aCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhUZXN0Q2FsbGJhY2suaCIKKyNp
bmNsdWRlICJWOGFueS5oIgogI2luY2x1ZGUgIlY4aW50LmgiCiAjaW5jbHVkZSAiVjhsb2cuaCIK
ICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC01ODAsNiArNTgxLDM0IEBAIHN0YXRpYyB2b2lk
IGNvbmRpdGlvbmFsQXR0cjNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6CiAKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjIpCiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRl
MUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1
dGUxLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOworICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRl
MSgpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8g
Z2V0RE9NT2JqZWN0TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKKyAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgd3JhcHBlciA9IHRv
VjgocmVzdWx0LmdldCgpKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAg
ICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIo
KSwgImNhY2hlZEF0dHJpYnV0ZTEiLCB3cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBw
ZXI7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMkF0
dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUy
Ll9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOworICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMigp
OworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0
RE9NT2JqZWN0TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKKyAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgd3JhcHBlciA9IHRvVjgo
cmVzdWx0LmdldCgpKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAg
ICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwg
ImNhY2hlZEF0dHJpYnV0ZTIiLCB3cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBwZXI7
Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZUF0dHIx
QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdFJ1bnRp
bWVBdHRyMS5fZ2V0Iik7CkBAIC0xMjc3LDYgKzEzMDYsMTAgQEAgc3RhdGljIGNvbnN0IEJhdGNo
ZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgLy8gQXR0cmlidXRlICdjb25kaXRp
b25hbEF0dHI2JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsJykKICAg
ICB7ImNvbmRpdGlvbmFsQXR0cjYiLCBUZXN0T2JqSW50ZXJuYWw6OlRlc3RPYmpDb25zdHJ1Y3Rv
ckdldHRlciwgMCwgJlY4VGVzdE9iamVjdEM6OmluZm8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6OlJlYWRPbmx5KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAjZW5kaWYgLy8gRU5BQkxFKENv
bmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVk
QXR0cmlidXRlMScgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRB
dHRyaWJ1dGUnKQorICAgIHsiY2FjaGVkQXR0cmlidXRlMSIsIFRlc3RPYmpJbnRlcm5hbDo6Y2Fj
aGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJp
YnV0ZSAnY2FjaGVkQXR0cmlidXRlMicgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0
dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQorICAgIHsiY2FjaGVkQXR0cmlidXRlMiIsIFRlc3RPYmpJ
bnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAog
ICAgIC8vIEF0dHJpYnV0ZSAnZGVzY3JpcHRpb24nIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRl
JyBFeHRBdHRyOiAnJykKICAgICB7ImRlc2NyaXB0aW9uIiwgVGVzdE9iakludGVybmFsOjpkZXNj
cmlwdGlvbkF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFj
Y2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmli
dXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAn
aWQnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
Yy9DUnVudGltZU9iamVjdC5oCmluZGV4IDZmZTdkZmFmNzdmYzBkMThjMGQwYzE1MWMxN2Y1YTdh
M2ZkYjM3OGMuLmY2NTg3MzQwM2NmMWQ0YzRjNGRkNjdmNDk1YTlmYzIxZjIyMmFhZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRleCBmY2QyNDJh
NWE5YzU4ZWI5N2YyODdjYzA3YTlhOGEzZGIyODlhNGMxLi5kZTYxNDQ5NTE3MmRjYmRhNWVhOTNi
MDEwNDEwMTRjMjYxYzY3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9j
X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNw
cApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpT
Qy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3Bw
CmluZGV4IDdlNjlmYmViNTdlMDhjMmIxMDVhYzMzNmU2NzI0ODNhYzVmOWEzYWUuLjM5NzIwMDk3
ZDVhMmEyODc1ZjM3MGM5ZmIwNGVjMDI2YzEwNjAwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCmluZGV4IDcwYTNjZTk4MTI2ZTYx
M2UwNjRiNjM4MWFjN2IzZDdhNzY5OTMwN2MuLmE0ZGZhNWI0NTc2YjdlZmJiZWJiYzIwODljNjNh
YjhkYTIxZGVmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YVJ1bnRpbWVPYmplY3QuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXggYmZhMWY5MWMzYjgz
NWEzOTQ2YTliYzlhMjlhN2ZlNmJmYzFiYzAyNy4uMmViNDI5MGZiYzM2YjJmMzQ4YmQ3ZTNmM2M0
YjZmYTFlMWI5NzllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2Jq
Q1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVu
dGltZU9iamVjdC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQppbmRleCBmMmQ3OWE2NTEzYmQ3NGI5YjgxYTE1
MjljNDM3Nzk3OWZjMjdlZWRkLi5hNmFhZjYwNTM4ZGExMDY3NzY0OTk2YjAyMjlkZjY4NTZmZGMy
ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAg
LTE4Myw3ICsxODMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggNWY2MWFkZmQ3
MTc2ZGZhZWViOWY0ZGNmMzFlOTIzZTkzYmZiMmQxNC4uZDBkOTc0NDkyMDJkZDk3NTc3ODc2YWI2
NmJjNjgyMWM2MDdhYjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaAppbmRleCAxMDIxZTdkMjA2M2QwZTZmMzU5Y2NlOGZiN2Q4ZTU5Yjg2NWE4
YjIzLi42ODE0Y2IyYjRjNWU4ZDFkYWEwNjExYzNkMzhjMTM0NjcyNGI2MDZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCBjZjgyMDczZGVhN2IwZTI0
ZTZlMDFkMGMyNzMxOTA5MTQxZjcxMTdmLi4xYjM3OThmOWJjYmFkM2QyZjM0OGQzYTFmMmJlM2I0
MWNjZjdiNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNTMs
NyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CmluZGV4IGIxMmU4NjExZTUwYjM3M2EzYjAxNjNkOWNlNmQyMWI2YTc1ZGVkMmQuLjRiY2VkY2Qy
NWUzMmU5MjlmYjUzMTBlMDU3ODU3NDdjMjJiY2VjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCAzMzY1MjgzNjNhNzhjMjVlZmFhMzFkYmRkNGMwYmFlZDdjNjU0MGY1Li5iNTI3NTc1
MWNjODk5NjVlOWIxNjMxNDUzOTIwYzNiNWExMWMyMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTEtMDktMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29i
amVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3
ODgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIHRoZSB1c2Ugb2YgQW5vbnltb3VzU2xvdENvdW50CisKKyAgICAgICAgKiBQbHVnaW5zL0hv
c3RlZC9Qcm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRo
b2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50
aW1lT2JqZWN0Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKToKKwogMjAxMS0wOS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSB0aGUgQ29tcGxldGlvbiBvYmplY3QgZnJvbSBKU0MsIEkgaGF2ZSBu
ZXZlciBsaWtlZCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5SW5zdGFuY2UubW0KaW5kZXggMWRmMDJkZmM2YTFhNWVmYjFiYzIwMjJiODY3NGFlMWMzNzU4
ZmY4MC4uYThhMjdhOTJhZTQ1YjBhMGQ2YTNlNGU2MmExNTljMzc5NGUzNjhhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC0x
OTEsNyArMTkxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3Qu
aAppbmRleCAzMTM3MTVhZWE0YjQzZWNmMDBlZGVkZWNlYTJkOWY2NDk1YzM5NWIwLi4yM2MyMDE5
YTRjNzJiZjlkZjMxNmExZTgxNWI5NDQ1OGRmNzhkMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApAQCAtNTMsNyAr
NTMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDkw
MmJjZDBkNmZjZTY3N2U3ZGU5MTU3NTE2NWMxZmU0ZWMwMDNkNDUuLjA5NWJkYmE4OTIwNDk1YTBh
YmQ4NGIyZDY2OGQxM2QwYzliYTc2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
MS0wOS0wOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBzdXBwb3J0IGZvciBhbm9ueW1vdXMgc3RvcmFnZSBmcm9tIGpzb2JqZWN0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4ODEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIHVzZSBvZiBB
bm9ueW1vdXNTbG90Q291bnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE1ldGhvZC5oOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIw
MTEtMDktMDggIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjov
L3Byb2JsZW0vOTc0MjM5Mz4gU3BlbGwgY2hlY2tpbmcgYSB0ZXh0IGFyZWEgY2F1c2VzIHRoZSBw
YWdlIHRvIHJlbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggZWY5Y2U5NDVkYzk1YjM3M2QxOTBhMTlh
NTFhMjhiZTBiNDA2Mzk3ZC4uMWRiMzU0Zjc0ODFlMWQ1ZjEyNDI2ZDU5NDU2YzY2ZGM4OTM2ZWVj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0
aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggZjA2MWU5ZjMx
NzAwZTEwMTE2MGFjMjQxMjRhMjk1NDhkMzdkYjMzOC4uODBmMTFlMjIyM2MwNzljZmE2NmM3Y2M3
MjI3MjdmYzA2NzI5MWI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZh
dGU6CiAgICAgCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgdmly
dHVhbCBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhKEpTQzo6Q2FsbERhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106960</attachid>
            <date>2011-09-09 21:34:48 -0700</date>
            <delta_ts>2011-09-09 21:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67881-20110909213446.patch</filename>
            <type>text/plain</type>
            <size>139069</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGE2ZjFiY2Q0ZWMxODI2ZmQ2NTc2NmZk
OWE0ODljMTM4ZTNhOTJjMmEuLjcyMGZkZmM0MWQxNzk3Mjk4MmNjOWQ1NTUxNzgzOTA1NTg0OWFj
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggMzk2OTA0ODQ3MGIxZDFlMDBjN2ZmNjMzNjk5MmZj
ZmMxNjQwNjMzZS4uMTNlN2UwMDlkYmFlNjVkNDQ1OTcwZDJmZjhhMGM5MGM2ODY5NTJjMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01
MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAvLyByZWZhY3RvciB0aGUgY29kZSBzbyB0aGlzIG92
ZXJyaWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCA2ZmRkZmZiZTNjNjNiZDU0NWM2NWJiZGRjM2UxMDdjMDRmYzA5YmY3Li5jMGQx
NjEwZmY2MDdjZWFkYzQ0OGE0NjRmYjZiMmI5YWMwMWFiYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8p
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IFBhcmVudDo6QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICB9CiAgICAgCiAg
ICAgSlNWYWx1ZSBnZXRQcml2YXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggN2U2NGEzNmMwYjdmMTkxZjI2
MGQzNjQ3MGM0ZTBlNmE5OTRmMGExNy4uY2RlOWVlMWFmOTAxODIxMjBmNjEzMDY0ODYyNTdjNzIw
MDdjOTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY3IEBACisyMDEx
LTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFu
b255bW91cyBzbG90cywgZXNzZW50aWFsbHkgYSBtZWNoYW5pY2FsIGNoYW5nZQorICAgICAgICBp
biBKYXZhU2NyaXB0Q29yZQorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZSk6CisgICAgICAgICogaGVhcC9NYXJrU3Rh
Y2suaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1
bWVudHM6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAgKEpTQzo6Qm9v
bGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJv
dG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAg
KEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OkRhdGVQ
cm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAo
SlNDOjpEYXRlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJh
c2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAg
KEpTQzo6SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNGaW5h
bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0
YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNT
dHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFy
aWFibGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBw
ZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAoSlNDOjpNYXRo
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9OdW1iZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6TnVtYmVyT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6Ok51bWJlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
T2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJlZ0V4
cDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmg6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5O
b2RlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90
eXBlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAoSlND
OjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24pOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6dG9EaWN0aW9uYXJ5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
cHJldmVudEV4dGVuc2lvbnNUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
bGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRk
UHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwdXRTcGVjaWZpY1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNo
ZWNrQ29uc2lzdGVuY3kpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm9w
ZXJ0eVN0b3JhZ2VTaXplKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hh
aW46OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggODNjZTg1MDY4YTZmZjhl
ZGJhNDhiZmFjOTg5OGQwNDE5MjU5YmZmNC4uNDViZDY5ZDMzMzE5NTZkZmU1MjE3ZjI2NjhkN2Vh
ZjY5ZTQ3ZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBA
IC0zMzgsNiArMzM4LDcgQEAgX19aTjNKU0M4ZXZhbHVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0
U2NvcGVDaGFpbk5vZGVFUktOU18xMFNvdXJjZUNvZGVFTlNfN0pTVmEKIF9fWk4zSlNDOGlzWm9t
YmllRVBLTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOUNvZGVCbG9ja0QxRXYKIF9fWk4zSlNDOUNvZGVC
bG9ja0QyRXYKK19fWk4zSlNDOU1hcmtTdGFjazEzdmFsaWRhdGVWYWx1ZUVOU183SlNWYWx1ZUUK
IF9fWk4zSlNDOVN0cnVjdHVyZTIxYWRkUHJvcGVydHlUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFs
RGF0YUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1
Y3R1cmUyMm1hdGVyaWFsaXplUHJvcGVydHlNYXBFUk5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNK
U0M5U3RydWN0dXJlMjVjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0
YUVQUzBfTlNfN0pTVmFsdWVFCkBAIC0zNDcsNyArMzQ4LDcgQEAgX19aTjNKU0M5U3RydWN0dXJl
MjhhZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEw
SWRlbnQKIF9fWk4zSlNDOVN0cnVjdHVyZTNnZXRFUk5TXzEySlNHbG9iYWxEYXRhRVBOM1dURjEw
U3RyaW5nSW1wbEVSalJQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOVN0cnVjdHVyZTQwYWRkUHJvcGVy
dHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUVQUzBfUktOU18xMElkZW50aWZpZXJFalBO
U182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmU2c19pbmZvRQotX19aTjNKU0M5U3RydWN0
dXJlQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RU5TXzdKU1ZhbHVl
RVJLTlNfOFR5cGVJbmZvRWpQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzlTdHJ1Y3R1cmVDMUVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTlNfN0pTVmFsdWVFUktOU184
VHlwZUluZm9FUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0M5U3RydWN0dXJlRDFFdgogX19aTjNK
U0M5Y29uc3RydWN0RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzEzQ29uc3RydWN0VHlw
ZUVSS05TXzEzQ29uc3RydWN0RGF0YUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0NlcUVSS05TXzdV
U3RyaW5nRVBLYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oCmluZGV4IDQ0YjYyNjcyMjdkN2JmNDU0YWY4ZjBmYTFiNjUxMjk4OWY4
M2EwYmMuLmNjZGJkZThmNmNiNDBhYjcxOWQ1NDg2YTBhNDg1NGU3MDhmYTlmNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgK
QEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAppbmRleCA3YTA0
ZTA2MDc4MTk0YjYxMmNhMmMxMzBmM2M3Mzk4NzU1NjUwNWM5Li5mZDY2OGJkOWVkYjY5ODExY2Jh
Mzk3ZWE3OGRjYjcxMjk1ZGM1MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrU3RhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtT
dGFjay5jcHAKQEAgLTE3NCw2ICsxNzQsMTAgQEAgdm9pZCBNYXJrU3RhY2s6OnZhbGlkYXRlVmFs
dWUoSlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoY2VsbC0+c3RydWN0dXJlKCktPnN0cnVjdHVyZSgp
LT5KU0NlbGw6OmNsYXNzSW5mbygpICE9IGNlbGwtPnN0cnVjdHVyZSgpLT5KU0NlbGw6OmNsYXNz
SW5mbygpKQogICAgICAgICBDUkFTSCgpOwogfQorI2Vsc2UKK3ZvaWQgTWFya1N0YWNrOjp2YWxp
ZGF0ZVZhbHVlKEpTVmFsdWUpCit7Cit9IAogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaAppbmRleCBlMWMyNDlhMjBkNGE4ZmNj
MjUwOGQ5MjM4NmYyOWE2ODZiNmU3ODFhLi44NDI3YjczN2QyODllODc5YmQ5ODgxNmJjNTFkYjRi
MTMxMDU3NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3Rh
Y2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaApAQCAtMTE4
LDggKzExOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICNpZiBFTkFCTEUo
R0NfVkFMSURBVElPTikKICAgICAgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVTZXQoSlNWYWx1ZSos
IHNpemVfdCk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIHZhbGlkYXRlVmFsdWUoSlNWYWx1ZSk7CiAj
ZW5kaWYKKyAgICAgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVWYWx1ZShKU1ZhbHVlKTsKIAogICAg
ICAgICB2b2lkIGFwcGVuZChKU1ZhbHVlKik7CiAgICAgICAgIHZvaWQgYXBwZW5kKEpTVmFsdWUq
LCBzaXplX3QgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAppbmRleCAwMDUxNzQyMTM3NzE5ZTZiMTczNGFlZTlmMzgyOWFkMzdmNmYzYjA1Li41NjExM2Rm
YTYxZDA5MjI1ZDFjYmMxOWMzOWNmMzJhMTQzMjNiNjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTEzLDcgKzExMyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAppbmRleCA5MzQ3NTIyMWJiNGE1YjdjMDVi
MGMxNGQxNDUxYTM5M2Y1YTQ4MzZjLi5jMmM3MTk4ZDY2Y2YyZjU2OWI5ODY1NzYzNTE4ODVjNmEz
YzVjZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25z
dHJ1Y3Rvci5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAg
ICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwCmluZGV4IDQyZjQxYTYzMWQ0OWNmM2RjZTljYThmZDdlNmI2ZGE4ZDU2NDM2
MDUuLmM3NjU1ZDM3ZTlhODE1NmUyY2Q3ODNkZjk5YTdhZTZhZDYyZjExZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEyMyw3
ICsxMjMsNiBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAg
IHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxP
YmplY3QpOwogfQogCiBib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5oCmluZGV4IDc1ZTZlODBiYTcyZjdhMWFmMmExZTgyYzhjMTc3YjVlOGZhOGYxZjYuLjQxZmY1
OTRiN2JkYTVhOThkYzM4NzFhZjJkODYyNzE0NWVhYzBlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDcsMTMgKzQ3LDExIEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IEpTQXJyYXk6OkFub255bW91c1Nsb3RDb3VudCAr
IDE7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKaW5kZXggY2VkMWNlYjM4YTVmMTU5ZmE5MzgyOTQ0
ODkzODBjNzI5YThmOTJhNy4uMDAwZDE5N2JmMWQwMTM5M2ZkMjM5OWEwYmQ3Yjk0YTVhN2M1NWNh
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApA
QCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogICAgIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlw
ZS5jcHAKaW5kZXggNzFkYjljNDQxZWU1ZTI5YjlhOGYxY2U0OTg1N2NmNmFiOWE0ZWVhNy4uYWM3
YTZlOTQ5YzA3MTdjYzk5NzEyMjdhNGE4YmQ2NjZmNzQ3MDA5NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTU1LDEzICs1
NSwxMiBAQCBCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CiB9CiAKLXZvaWQgQm9vbGVhblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBC
b29sZWFuUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkp
OwogICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc0Jvb2xlYW4oZmFs
c2UpKTsKIAogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3Vz
VmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAK
IGJvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5k
ZXggYjczN2RmZjcyODg1OTZmZWJiY2M4YWFkMWI2ZjhkZTEyZjZjYTNlYy4uMmE2YzgxZmEzZDUz
MGQ2MGI4MmU0NTdlODk4MjhlYTk4NzhmZjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaApAQCAtMzgsMTMgKzM4LDEyIEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEJvb2xlYW5PYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gQm9vbGVhbk9iamVjdDo6QW5vbnltb3VzU2xv
dENvdW50ICsgMTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEJvb2xlYW5Qcm90b3R5cGUoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKaW5kZXggOTM2YWZjMWY1MTVkMWVm
NWJhOTE0ZjEyMDc1MDc0YThkN2RkZDlhOC4uNWZhNTFkZjk1OTllZDNlMTQ2YjZiODNjYThiMDJk
OTIxMDI4NTFhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0
YW5jZS5oCmluZGV4IGJkMzZlYjczM2FlZWRlYWJiMDNiNDA5MzllZjAyZjU4M2ZiYmNmZTMuLjEy
MTMwYTQ0M2EyNGJmZWI4NGJmNmEzYjU4YTkxNjAxMmVmODMyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggNzUwZGRmOTVhMWI0OGFhNGU0
ZDc3OTg2YzU0NWM2ODQ1N2IzNjIwYy4uNzgzODU4NThkYjBlNjI3YzhjN2I2NDUwNTUyNDI1OGMy
YzA3NDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHAKQEAgLTQzNiwxMyArNDM2LDEyIEBAIERhdGVQcm90b3R5cGU6OkRhdGVQcm90b3R5
cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1CiAg
ICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotdm9pZCBEYXRlUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit2b2lkIERhdGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4
ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIAogICAg
IC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBEYXRlQ29uc3Ry
dWN0b3IgaGFzIGJlZW4gYnVpbHQuCi0gICAgcHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQogCiBib29sIERhdGVQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDEwNjkwODUyODJhZTI1ZDVhZmNjODliOWFjOTIzMTcz
MTNlMDIyOWMuLmNkYTZiN2FmYTk3MTU1ODAzMTFmNDBhYmY5NDNkNWZkMjQzMGE0MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKQEAgLTQ1LDE1
ICs0NSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKICAg
ICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBEYXRlSW5zdGFuY2U6OlN0cnVjdHVyZUZsYWdzOwotCi0gICAg
ICAgIENPTVBJTEVfQVNTRVJUKCFEYXRlSW5zdGFuY2U6OkFub255bW91c1Nsb3RDb3VudCwgRGF0
ZVByb3RvdHlwZV9zdG9tcHNfb25feW91cl9hbm9ueW1vdXNfc2xvdCk7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSAxOwogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0
YW5jZS5oCmluZGV4IDViOGY5NWE1Y2U5ZDMyMjg1NmZhYWU5OWIyZGUwODc4YzE5ZGQ5MTMuLjM5
ZDZjMjJmM2E5YjRiMTFlZjI4NzY0ZTBkMDNkOGU4OTc3NWY4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNy
ZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBVU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IDJhOWI5YTliMDQwYTU0NTI4ODVkODQxNWVkMDFhMmVj
MWFkYzYzMDEuLjJiMmYwMmNmNmQ4NzkyZWY0NGQ1ZmM5ZjlmNGY3NDhlY2Y1YjA1ODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKQEAg
LTU1LDEyICs1NSwxMSBAQCBFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoRXhlY1N0YXRl
KiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKIH0KIAotdm9pZCBFcnJvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQordm9pZCBFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCopCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCAiIik7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBw
dXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwg
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250RW51bSk7Ci0gICAgcHV0QW5v
bnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7
CiB9CiAKIGJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5k
ZXggOTM0ODRjMjc0NjVlNGQ5MTU1NDlmMTVlMTA4NzNmZWM1OThkZGFjMC4uNDI1ZDY2YmNlM2Vi
NmIyZmIxMDViMjhmYzFjNzQ0YWYzYmFiNGM3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtNTAsNyArNTAsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2Jh
bE9iamVjdCopOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5zdGFuY2U6OlN0cnVjdHVy
ZUZsYWdzOwotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50
ID0gRXJyb3JJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCmluZGV4IDM5ZWJlMTY3ZGUwMDVmNTc5N2Y3
ZjkwNWFmYTkwODZjMTQ4MTUxYmQuLmIxNzI0ZDAzNDY2M2JmMzExMzdkMGE4ZWFjMTI2YTg4ZTkz
ZDExMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNfRVhQT1JU
REFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oCmluZGV4IDZiZjY0MjVjMzFiMmNlOTVjMzdjODUxZTg2YTk2MTg4OTRm
NTA2OWMuLjUzNDE1M2FlODQ5NGNkZTE5OWVhYjMwMGFmMzVkNzQ4M2M0ZmQxYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTgzLDcgKzgzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbV9udW1QYXJhbWV0ZXJzRm9yQ2Fs
bCA9PSBOVU1fUEFSQU1FVEVSU19JU19IT1NUOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29t
cG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9
CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApAQCAt
MTk4LDcgKzE5OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uKCkgeyByZXR1cm4gbV9mdW5jdGlvbjsgfQogCi0gICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKExlYWZUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlw
ZUluZm8oTGVhZlR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IH0KICAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCkBAIC0zMzQsNyArMzM0LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJ
bmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CkBAIC0zOTUsNyArMzk1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
QEAgLTU1MSw3ICs1NTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZnJvbUdsb2JhbENvZGUoY29uc3QgSWRlbnRpZmllciYsIEV4ZWNTdGF0
ZSosIERlYnVnZ2VyKiwgY29uc3QgU291cmNlQ29kZSYsIEpTT2JqZWN0KiogZXhjZXB0aW9uKTsK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJ
bmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAppbmRleCAx
MGQxYTE3NmUyMmNiYzJhMzhiZTQ0YzM2OTYxNWVhODQwOTVlYTBmLi45YWQ3MGY3MDE1NjJjMmQ5
NTdkN2RiZTk4M2QwMGIwZjU2ZjkzOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmgKaW5kZXggMjExMWE1YTVmOWJmMmJjZTNkM2FlZWRlMDE1N2Zl
M2I0MWI3ZGE1MC4uMjVhMzY5MjQyNmIzMDg4NDFlOGVlMjc2MzBiNGU3ZjMyMWMyYmRmMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKQEAgLTYxLDcg
KzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc2V0U2V0dGVyKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIHNldHRlcikgeyBtX3NldHRlci5zZXQoZ2xvYmFs
RGF0YSwgdGhpcywgc2V0dGVyKTsgfQogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oR2V0dGVy
U2V0dGVyVHlwZSwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiksICZzX2luZm8pOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAy
M2RmNmQzNDZlYTdkZjgxNGE0OTQ3MGM3OWJhZGFkZGJkN2YxZWYyLi4wZjYxNTliMzY0YWYzOTcy
MTRiY2EzYmI4ZGVmMTBlYTUxOTg5ZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDZjMGQzM2QzN2IwOWU2NjA3ZmQyY2RiYWY4
ZTExYmMyNTE2NWNmMjEuLmIyN2IyZTU2NTJiMjEwMGU5MTYzOTFhNDQ0YzVjNzFlMDE5ZTIwNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFw
cGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBw
ZXIuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyksICZzX2luZm8pOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXgg
NzAxZTIxOGVhYWQ4ZWIwNjM0YjA1ZTk3MmIxMTJjNDI0MDc4MjA1Yi4uZDg2MzU5M2IzMmIxODA0
YjYxNmU3YmE1YmM4YmYxY2M1YTZhNWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTc2LDcgKzc2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKENhbGxG
cmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IDM1NDY1
OWEzNjkzNWI2ZmU2ZjkzYmNkZTQ0ZTFjODk5MGVjMDEyNTkuLjU2NjIyMjVlNTdjZDE5NzUzY2Qy
OTQ2ZTFiNjJmNTcyNmMwNmRiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5LmgKQEAgLTE1MSw3ICsxNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIGlubGluZSB2b2lkIHZpc2l0Q2hpbGRyZW5EaXJlY3QoU2xvdFZpc2l0b3Im
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRl
eCA0M2ZkMjI5OWRlODFjYWQ3ZjBlODE2NjAzZmM0NmIyOTg2ZWE0OTUxLi5kYWMzZDk0ZDI4OTc2
YzQ5YWRkZDgwOTRlZjBkZDM0M2NhMDkxOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC01MSw3ICs1MSw3IEBAIEpTQnl0ZUFycmF5Ojp+
SlNCeXRlQXJyYXkoKQogCiBTdHJ1Y3R1cmUqIEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbykKIHsKLSAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCBjbGFzc0luZm8pOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBjbGFzc0luZm8pOwogfQogCiBib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgK
aW5kZXggZTEwNjQ0NjZmMDc0ODA1M2NkOTBiZjRkOTkxNDg0MDFjMTIxNWQ0MC4uNWIzYjc2ZTBi
N2IzM2U4MGJlYTBhYTIxZDc4MzY3MWM2ZDgwMzE2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmgKQEAgLTE0NSw3ICsxNDUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRp
ZgogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBBbm9ueW1vdXNTbG90Q291bnQgPSAwOwogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiwgU3RydWN0dXJlKiwgQ3JlYXRpbmdFYXJseUNlbGxUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDFkYjNjODBkYjZjNDA0MmMxMmFiYWQyNzMy
NWJhY2U1YWNmMTlhZmMuLmIxOTI2YTRiMzhmZTNlYmU5ZWQyMTExM2QyY2YyNTQ1ZDM4NWM0MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTExOSw3
ICsxMTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7CiAgICAgICAgICAgICBB
U1NFUlQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsgCiAgICAgICAgIH0KIAogICAgICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5k
ZXggZDBhODAyZWRlMDY2ZTY4ZjhlZjYxYTIxOTQ1YWVhNGNlNDgxNzRjOC4uNjBhNDVlNjNjZGUz
OTcwMTI5OGYwMDZhN2UxYmFlMzFjNTNhMGQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNjcsNyArMTY3LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOwogICAgICAgICAgICAgc3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdChnbG9iYWxE
YXRhLCB0aGlzKTsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpB
bm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVf
c2xvdCk7CiAgICAgICAgICAgICBwdXRUaGlzVG9Bbm9ueW1vdXNWYWx1ZSgwKTsKICAgICAgICAg
ICAgIGluaXQodGhpc1ZhbHVlKTsKICAgICAgICAgfQpAQCAtMjc0LDcgKzI3Myw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgMCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAo
T3BhcXVlSlNXZWFrT2JqZWN0TWFwKiBtYXApCkBAIC0yOTQsNyArMjkzLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGRvdWJsZSB3ZWFrUmFuZG9tTnVtYmVyKCkgeyByZXR1cm4gbV93ZWFr
UmFuZG9tLmdldCgpOyB9CiAgICAgcHJvdGVjdGVkOgogCi0gICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU1ZhcmlhYmxlT2JqZWN0OjpBbm9ueW1vdXNT
bG90Q291bnQgKyAxOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVu
IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmplY3Q6OlN0cnVjdHVy
ZUZsYWdzOwogCiAgICAgICAgIHN0cnVjdCBHbG9iYWxQcm9wZXJ0eUluZm8gewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDdiNjhiNTIyY2Nm
NzYyZDFkMTM1Y2M2YzE3NDViYjlkMzM4YzYyMTAuLjIxZmU0MjkxNmJhYTY0ZTIyMDMxYTM1NWU0
YWFlZDJhOWFlNDg5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05v
dEFuT2JqZWN0LmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAK
ICAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
aAppbmRleCA4MmEzMmY4ZWM1N2ZkNGM3OTM5OWViMTg0MWFjMTkwYTZkZGM3NGI4Li5iZjFiYThj
MDI4NmYxY2I1ZDJlMTJiZDljYTc3OWVjNjgyNmM1MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4
IGJjNDMyZDNhYzhmMjkyNmQ5NTVkYzZlY2M2OTIxZjU4YjU4ZGM0MGYuLmUzZmI3NmNmZWFiMmU1
ZWJmOGFmZjkyYmM5NDA1YmMzMDllNDQ2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaApAQCAtMjMxLDIyICsyMzEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIG1fc3RydWN0dXJlLT5mbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZShnbG9iYWxEYXRh
LCB0aGlzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHV0QW5vbnltb3VzVmFsdWUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1cmUtPmFub255bW91
c1Nsb3RDb3VudCgpKTsKLSAgICAgICAgICAgIGxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KS0+c2V0
KGdsb2JhbERhdGEsIHRoaXMsIHZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGNsZWFy
QW5vbnltb3VzVmFsdWUodW5zaWduZWQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFT
U0VSVChpbmRleCA8IG1fc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7Ci0gICAgICAg
ICAgICBsb2NhdGlvbkZvck9mZnNldChpbmRleCktPmNsZWFyKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgSlNWYWx1ZSBnZXRBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICAg
ICAgewotICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1cmUtPmFub255bW91c1Ns
b3RDb3VudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbkZvck9mZnNldChpbmRleCkt
PmdldCgpOwotICAgICAgICB9Ci0KICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Z2xv
YmFsT2JqZWN0KCkpOwpAQCAtMjc0LDcgKzI1OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IDA7CkBA
IC0zNTEsNyArMzM1LDcgQEAgQ09NUElMRV9BU1NFUlQoKEpTRmluYWxPYmplY3RfaW5saW5lU3Rv
cmFnZUNhcGFjaXR5ID49IEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3QKIAogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKQEAgLTM5OCw3ICszODIsNyBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9i
amVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAog
CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAppbmRleCBjYzEyMmJkN2Rl
Y2M4MzZlYTlmM2QxNzBkN2YzOGIwMWMyNzVjY2IyLi40YzdhNmVlOTY3NDU4ZTkxNGE0NzMwZmRl
NjRhM2FhNWU0NTEwOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcApAQCAtNTQsOSArNTQsOCBAQCBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdAogICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMo
ZXhlYyk7CiAgICAgby0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKICAg
ICBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdHMgPSAwOwotICAgIGlmICghby0+c3RydWN0dXJlKCkt
Pmhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgJiYgIW8tPnN0cnVjdHVyZSgpLT5oYXNBbm9u
eW1vdXNTbG90cygpICYmCi0gICAgICAgICFvLT5zdHJ1Y3R1cmUoKS0+aGFzR2V0dGVyU2V0dGVy
UHJvcGVydGllcygpICYmICFvLT5zdHJ1Y3R1cmUoKS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnko
KSAmJgotICAgICAgICAhby0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcygpKQorICAgIGlmICghby0+c3RydWN0dXJlKCktPmhhc05vbkVudW1lcmFibGVQ
cm9wZXJ0aWVzKCkgJiYgIW8tPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVz
KCkKKyAgICAgICAgJiYgIW8tPnN0cnVjdHVyZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgp
ICYmICFvLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
KCkpCiAgICAgICAgIG51bUNhY2hlYWJsZVNsb3RzID0gby0+c3RydWN0dXJlKCktPnByb3BlcnR5
U3RvcmFnZVNpemUoKTsKICAgICAKICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBqc1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNQcm9wZXJ0eU5hbWVJdGVyYXRv
cj4oKmV4ZWMtPmhlYXAoKSkpIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IoZXhlYywgcHJvcGVydHlO
YW1lcy5kYXRhKCksIG51bUNhY2hlYWJsZVNsb3RzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAppbmRleCA2ZDVjNzVh
YWYxN2JhYWZmODVhMGZiZjViNjVhMjRjNTU2ZmEzM2Q0Li4yZjJjY2I1Y2YzMWFlODFkNTBmOTA3
NDYzMWViNWMwYWYxZDBjYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBl
LCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eU5hbWVJdGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaAppbmRleCAyMjU2Mzg2NTE3NDA1NWRjMzA5YTU0ODdhYjZjOTE5ZGJkMGRmMmM0
Li4xZjhkOGI4ZmVmM2Q4YmMzYzFlMmI1YjIwMDE2YjJhNTlmNWM1MjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00
OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAotICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAg
ICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgfQogCiAgICAg
cHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0
cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDYz
ODIwMzFiMmRiNTkwN2JlOWEzMTA2YWI4ODlhYTYxNDc0ZDM2YjQuLjdiMGRjZTJmNjJjYzQ3Y2M1
ZmIzNjYzMjNmZmNkZGE4NTY4MmIzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuaApAQCAtNDM4LDcgKzQzOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhTdHJpbmdUeXBlLCBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5
cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCksICZzX2luZm8p
OwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFi
bGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuaAppbmRleCBkNTdjNmFjMDRjYmUyYjE3N2FmNjM3OWFlOTJlNjRjNzU4OGYyM2JmLi5jMjZk
YzdlYmExN2ZlOWJkNDFmYWUzY2FiMDE3NTkwNjI4YjA2Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCkBAIC02Myw3ICs2Myw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCmluZGV4IDEx
MzQyM2UxNjM0NzNlNTI3YTJhMzRmNTU1ZTJmNWQ1OGZlZDg4NDQuLmNmNDRlMDRlNzg1ZDI0ZTQ5
YTBiOWM1NTcyZDVlMTVjMmE3YjQ5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmgKaW5kZXggMTAxZTI2NjdhNWU4Mjc2ODczOTg2ZmY0ZDcxMTljZmU5
MzkyM2NjNC4uN2M0NzA3MmY0NTkwMDFlMzBjZTZmOWVhMTc5NTlkNTBhZjU0Yzk0NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtNDUsNyArNDUsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaApp
bmRleCA2YTQ3M2RhOGJiODU2ZTAwOGI3MmUzNmUxOTRjMzhlMjhlMGM2Y2U3Li4xYTBiNGUwNzg2
MmFmNzMyYzNlNWM4NGY3N2IyZGUxODdmOTM2YjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0
Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIFN0cnVjdHVyZSogZXJy
b3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCAx
ZWRkMDE0NzQyZjllYmViMWU0NTJkZDY0ZDQ0YzE3MDhhNTU4YmFlLi44NGM0ZDFmYjYyOTY4MmE1
NjRmMWExYjZmODFkZDJlZDk5MTc2NzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAg
ICAgICAgfQogCiAgICAgICAgIGVudW0geyBOYU5WYWx1ZSwgTmVnSW5maW5pdHksIFBvc0luZmlu
aXR5LCBNYXhWYWx1ZSwgTWluVmFsdWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyT2JqZWN0LmgKaW5kZXggZTZjZDRjZjM4MWNjNTkyNjZjMDU1NDVjOGJhMjQ0OTFm
NWFmYzg2Ny4uZjExMzhkYTcyZDRhZThkMDAzN2FiZDNkNGE5YmVmM2Y0MmRiMjZlNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggOWI1
NzYyYjk1ZTEwNTAzNDkwM2Q1OGVjZTRhZTAzMjgwODdjYzY5YS4uODcwMWU5MTE3ZmM4MWU5Zjkz
MGUwY2Q4MGI1MGEwYTM0MWZhNWE2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC03NiwxMyArNzYsMTIgQEAgTnVtYmVyUHJv
dG90eXBlOjpOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LAogICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9
CiAKLXZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIE51bWJlclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCopCiB7CiAgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICBzZXRJbnRlcm5hbFZh
bHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIoMCkpOwogCiAgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2Jh
bERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBOdW1iZXJQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAppbmRleCAyMjViNTE1OTY3MGIwZWIzMDZlOTk2MGM2
NGE3MGIzZDIxMGRlODZhLi44ZTEwMDdhY2JiYzhiYzZjYTUwNTI0MWRlNjY3ZjNjZGU2ZDQ4MDQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
aApAQCAtMzgsMTMgKzM4LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE51bWJlck9iamVjdDo6U3RydWN0dXJlRmxh
Z3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBO
dW1iZXJPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5oCmluZGV4IDM4YzQ4ZTg0OWZkMzE5NjlhZTllZTcyOWRhOGJlZGU5YmZkYTExMTUuLjRj
MzIwMjg4MWIyMDRjYzQxMjhmODc0MjhlNDA3YTExM2MyOTcwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtNDMsNyArNDMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDUw
ODlhNWZmZGJmNzczZDBmZjdlODY5OTIxMzVkNTU1YWEyOTU3NjQuLmRiMDA4OWI3ZGQ5ZTVhZWU2
MmU0NzQyZTMwOWQ0MDM2MmFkOWFmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtNjksMTEgKzY5LDEwIEBAIE9iamVjdFBy
b3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHVj
dHVyZSkKIHsKIH0KIAotdm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQg
T2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHB1dEFub255bW91c1ZhbHVl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lk
IE9iamVjdFByb3RvdHlwZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IDEy
MDc0MDg5NTI1MzdlNmFlNzExYzI0YTEzYmZhYTI5Y2Q3MTgzZjkuLjRjMTJkZmI0Njc5MmRjMWI4
ZTFlZTEzMjBlOGQ0MjRiYTZiOWZjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC00MCwxMiArNDAsMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTTm9u
RmluYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgQW5vbnltb3VzU2xvdENvdW50ID0gSlNOb25GaW5hbE9iamVjdDo6QW5vbnltb3VzU2xvdENv
dW50ICsgMTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKaW5k
ZXggZTk5MDgxNDNlMWU3ODA3ZDBlZmMxODVlOTNkNDI2MTZmMTBhOGY0Yi4uMGNmODBhMDZlMzJh
ODA2Y2Q0YTM4OTZiZGMxYmY4OTczYzdhZjJlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwLmgKQEAgLTY4LDcgKzY4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oTGVhZlR5cGUsIDApLCAwLCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oTGVhZlR5cGUsIDApLCAmc19pbmZvKTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5oCmluZGV4IGI1YjJiMzAyNjYxNjllNjg2ZjVmN2EyZWEwZjY2YTNmODJk
ZGM5OTAuLjVmYTc2MWVhNmIwYWZhNzU1ZDk4NDNiMzNiNmQzYjc4MmM2MzhhM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAt
NjYsNyArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5oCmluZGV4IDQ5ZGRkMzdiMzIzOTcyMGE2NjZkNjA4YjllZTI2Y2Q0ZGZj
ZmY1ZjkuLmM5ZmIwMGJmMDkwODNjMmU5MTU3ODRjYTczZTI2MTVhNGU1MmU3MzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC03Myw3ICs3Myw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAppbmRleCBkNDViMGEy
N2IwNmQwYzQ0MTU2MzI0NjQ4OGUyYzhkZTY5ZjM2NmUzLi5jMzJhOWJmODdlZWY2MzVlMGE4NjJk
ZmZiZGMzNzUyZWZhZTc3ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Njb3BlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
b3BlQ2hhaW4uaAppbmRleCA2OWIwYmQxMmIwOTMzMDI4MzgwNzFlODU4MjFiYjc4ODU2MjVjMjUz
Li5kZDUwMDRiNTAwYTgyY2FjNGVlYWYyYmJjNTc1Yjc4ZmQ4NDdkZjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCkBAIC04Niw3ICs4Niw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIHByaW50KCk7CiAjZW5kaWYKICAgICAgICAgCi0gICAg
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5
cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOyB9CisgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYpOwogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFs
QWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uaAppbmRleCA0YmI3NmMwNmQ5MWFiMWI0OTk2MDE2NzI5N2U0YmRkNDMxNjI3MzI0
Li40ZTYxNzVkMWJhOGEzMTg3ODFmMTQ1MGEzZWZjZmI3M2ZmYWU0MjU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KICAgICAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCmluZGV4IDhhYmFkOWRlZDFiNDZmNjg0MTUz
NDBhNzBlMGNjOWQ5ZjNlZTEwZDcuLjgwZTM3MTYyMDkwNWUwOThiYzMxZmVlZjEyNzA3Y2M3OGNl
MGIyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0LmgKaW5kZXggMThhZmU3MmRlZDRkNzkxZjI2OTEwMGI2NGZkNjUyMGZkZmI3NTk0ZC4uZmY5
MWRiMzI0ZjhjMGE4OWMyN2IwODEyMWU4MGQxOTI4ODkzMjM5NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVm
aW5lZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQuaAppbmRleCBlMjFmOWExMDY2MDkxNmNmZWI1YTgxMjY5NjQx
YWRmMDU0ZWUxNWU2Li5jMDRlZmRlM2UxYWRkMjU3YmY3ZGFhOTZiMGNkNmIxODE0NGUxYzBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTQ4LDcgKzQ4
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgU3RyaW5nT2JqZWN0OjpT
dHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwCmluZGV4IDU5MDM5MDliOTRkMmRlNDU4MWM0NzM0MGI0MDAyZGY2ODgw
YWIzYTQuLmExYzlhYTlmMWNiNmU4NTAxNDUzMjgxMGFlMjNjMGM4NGJiYTUyOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAt
MTM3LDEyICsxMzcsMTEgQEAgU3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGZpbmlzaENyZWF0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZUFuZE1lc3NhZ2UpOwogfQogCi12b2lkIFN0cmlu
Z1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogbmFtZUFuZE1lc3NhZ2UpCit2b2lkIFN0cmluZ1By
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCos
IEpTU3RyaW5nKiBuYW1lQW5kTWVzc2FnZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCksIG5hbWVBbmRNZXNzYWdlKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwogCi0gICAgcHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAw
LCBnbG9iYWxPYmplY3QpOwogICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxh
dGVyLCBhZnRlciBTdHJpbmdDb25zdHJ1Y3RvciBoYXMgYmVlbiBidWlsdAogICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVt
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBl
LmgKaW5kZXggNjUxZjlhYzNkZDRmNTdkYWI3MjhiYjA1MjYxYzU3ODliMThjNjFkMS4uNDlhMWRh
MjA4ZDFlMGMxODI4NTQzMjViODQ0NDRjMjM3YmU4MzhkOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CkBAIC01Myw4ICs1Myw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgU3RyaW5nT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgICAg
ICBDT01QSUxFX0FTU0VSVCghU3RyaW5nT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQsIFN0cmlu
Z1Byb3RvdHlwZV9zdG9tcHNfb25feW91cl9hbm9ueW1vdXNfc2xvdCk7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSAxOwogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5j
cHAKaW5kZXggMmJkZjVmZDI5Y2M0OGRhNTA3MTNhYzY3ZTQ0YmI2MmY3N2ZjNjZhOS4uZTM1ZjBj
NGQ0NmZhZDI3MmM5MzU3N2UwNGFmYzk5ZmJiNjBkMWI0OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBTdHJ1
Y3R1cmU6OmR1bXBTdGF0aXN0aWNzKCkKICNlbmRpZgogfQogCi1TdHJ1Y3R1cmU6OlN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFu
b255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCitTdHJ1Y3R1cmU6
OlN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgIDogSlNDZWxsKGdsb2JhbERhdGEsIGdsb2Jh
bERhdGEuc3RydWN0dXJlU3RydWN0dXJlLmdldCgpKQogICAgICwgbV90eXBlSW5mbyh0eXBlSW5m
bykKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHRoaXMsIGdsb2JhbE9iamVjdCwg
V3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0Pjo6TWF5QmVOdWxsKQpAQCAtMTczLDcgKzE3Myw2
IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWCiAgICAgLCBtX2hhc05vbkVudW1lcmFibGVQcm9w
ZXJ0aWVzKGZhbHNlKQogICAgICwgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cygwKQogICAgICwgbV9z
cGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQoMCkKLSAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50
KGFub255bW91c1Nsb3RDb3VudCkKICAgICAsIG1fcHJldmVudEV4dGVuc2lvbnMoZmFsc2UpCiAg
ICAgLCBtX2RpZFRyYW5zaXRpb24oZmFsc2UpCiB7CkBAIC0xOTQsNyArMTkzLDYgQEAgU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgICwgbV9oYXNOb25F
bnVtZXJhYmxlUHJvcGVydGllcyhmYWxzZSkKICAgICAsIG1fYXR0cmlidXRlc0luUHJldmlvdXMo
MCkKICAgICAsIG1fc3BlY2lmaWNGdW5jdGlvblRocmFzaENvdW50KDApCi0gICAgLCBtX2Fub255
bW91c1Nsb3RDb3VudCgwKQogICAgICwgbV9wcmV2ZW50RXh0ZW5zaW9ucyhmYWxzZSkKICAgICAs
IG1fZGlkVHJhbnNpdGlvbihmYWxzZSkKIHsKQEAgLTIxMyw3ICsyMTEsNiBAQCBTdHJ1Y3R1cmU6
OlN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFN0cnVjdHVyZSogcHJl
dmlvdXMpCiAgICAgLCBtX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKHByZXZpb3VzLT5tX2hh
c05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKQogICAgICwgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cygw
KQogICAgICwgbV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQocHJldmlvdXMtPm1fc3BlY2lm
aWNGdW5jdGlvblRocmFzaENvdW50KQotICAgICwgbV9hbm9ueW1vdXNTbG90Q291bnQocHJldmlv
dXMtPmFub255bW91c1Nsb3RDb3VudCgpKQogICAgICwgbV9wcmV2ZW50RXh0ZW5zaW9ucyhwcmV2
aW91cy0+bV9wcmV2ZW50RXh0ZW5zaW9ucykKICAgICAsIG1fZGlkVHJhbnNpdGlvbih0cnVlKQog
ewpAQCAtMjUzLDcgKzI1MCw3IEBAIHZvaWQgU3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3BlcnR5
TWFwKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKIAogICAgIGZvciAocHRyZGlmZl90IGkgPSBz
dHJ1Y3R1cmVzLnNpemUoKSAtIDI7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIHN0cnVjdHVyZSA9
IHN0cnVjdHVyZXNbaV07Ci0gICAgICAgIFByb3BlcnR5TWFwRW50cnkgZW50cnkoZ2xvYmFsRGF0
YSwgdGhpcywgc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCBtX2Fub255bW91c1Ns
b3RDb3VudCArIHN0cnVjdHVyZS0+bV9vZmZzZXQsIHN0cnVjdHVyZS0+bV9hdHRyaWJ1dGVzSW5Q
cmV2aW91cywgc3RydWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzLmdldCgpKTsKKyAg
ICAgICAgUHJvcGVydHlNYXBFbnRyeSBlbnRyeShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUt
Pm1fbmFtZUluUHJldmlvdXMuZ2V0KCksIHN0cnVjdHVyZS0+bV9vZmZzZXQsIHN0cnVjdHVyZS0+
bV9hdHRyaWJ1dGVzSW5QcmV2aW91cywgc3RydWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJblByZXZp
b3VzLmdldCgpKTsKICAgICAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGQoZW50cnkpOwogICAgIH0K
IH0KQEAgLTI5MCw5ICsyODcsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVydHlU
cmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdAogICAgICAgICBp
ZiAoc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMgJiYgc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMgIT0g
c3BlY2lmaWNWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBBU1NFUlQoZXhp
c3RpbmdUcmFuc2l0aW9uLT5tX29mZnNldCAhPSBub09mZnNldCk7Ci0gICAgICAgIG9mZnNldCA9
IGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9vZmZzZXQgKyBleGlzdGluZ1RyYW5zaXRpb24tPm1fYW5v
bnltb3VzU2xvdENvdW50OwotICAgICAgICBBU1NFUlQob2Zmc2V0ID49IHN0cnVjdHVyZS0+bV9h
bm9ueW1vdXNTbG90Q291bnQpOwotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91
c1Nsb3RDb3VudCA9PSBleGlzdGluZ1RyYW5zaXRpb24tPm1fYW5vbnltb3VzU2xvdENvdW50KTsK
KyAgICAgICAgb2Zmc2V0ID0gZXhpc3RpbmdUcmFuc2l0aW9uLT5tX29mZnNldDsKICAgICAgICAg
cmV0dXJuIGV4aXN0aW5nVHJhbnNpdGlvbjsKICAgICB9CiAKQEAgLTMyMiw4ICszMTcsNiBAQCBT
dHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgU3RydWN0dXJlKgogICAgICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSB0
b0NhY2hlYWJsZURpY3Rpb25hcnlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CiAg
ICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUgIT0gdHJhbnNpdGlvbik7CiAgICAgICAgIG9mZnNldCA9
IHRyYW5zaXRpb24tPnB1dFNwZWNpZmljVmFsdWUoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBh
dHRyaWJ1dGVzLCBzcGVjaWZpY1ZhbHVlKTsKLSAgICAgICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1
Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+
bV9hbm9ueW1vdXNTbG90Q291bnQgPT0gdHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQp
OwogICAgICAgICBpZiAodHJhbnNpdGlvbi0+cHJvcGVydHlTdG9yYWdlU2l6ZSgpID4gdHJhbnNp
dGlvbi0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKICAgICAgICAgICAgIHRyYW5zaXRpb24t
Pmdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwogICAgICAgICByZXR1cm4gdHJhbnNpdGlv
bjsKQEAgLTM1MCwxMyArMzQzLDEwIEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0
eVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqCiAgICAgfQog
CiAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+cHV0U3BlY2lmaWNWYWx1ZShnbG9iYWxEYXRhLCBw
cm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljVmFsdWUpOwotICAgIEFTU0VSVChvZmZz
ZXQgPj0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCk7Ci0gICAgQVNTRVJUKHN0cnVj
dHVyZS0+bV9hbm9ueW1vdXNTbG90Q291bnQgPT0gdHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90
Q291bnQpOwogICAgIGlmICh0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgPiB0cmFu
c2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQogICAgICAgICB0cmFuc2l0aW9uLT5n
cm93UHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKTsKIAotICAgIHRyYW5zaXRpb24tPm1fb2Zmc2V0
ID0gb2Zmc2V0IC0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudDsKLSAgICBBU1NFUlQo
c3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSA9PSB0cmFuc2l0aW9uLT5hbm9ueW1vdXNT
bG90Q291bnQoKSk7CisgICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBvZmZzZXQ7CiAgICAgc3Ry
dWN0dXJlLT5tX3RyYW5zaXRpb25UYWJsZS5hZGQoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbik7CiAg
ICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CkBAIC0zNjgsOCArMzU4LDYgQEAgU3RydWN0dXJlKiBT
dHJ1Y3R1cmU6OnJlbW92ZVByb3BlcnR5VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHUKICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSB0b1VuY2FjaGVhYmxlRGlj
dGlvbmFyeVRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKIAogICAgIG9mZnNldCA9
IHRyYW5zaXRpb24tPnJlbW92ZShwcm9wZXJ0eU5hbWUpOwotICAgIEFTU0VSVChvZmZzZXQgPj0g
c3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCk7Ci0gICAgQVNTRVJUKHN0cnVjdHVyZS0+
bV9hbm9ueW1vdXNTbG90Q291bnQgPT0gdHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQp
OwogCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CkBAIC0zODUsOCArMzczLDcgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3QKICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXBJ
Zk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUg
PSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwog
ICAgIHRyYW5zaXRpb24tPm1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKLSAgICAKLSAg
ICBBU1NFUlQoc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSA9PSB0cmFuc2l0aW9uLT5h
bm9ueW1vdXNTbG90Q291bnQoKSk7CisKICAgICByZXR1cm4gdHJhbnNpdGlvbjsKIH0KIApAQCAt
NDA5LDggKzM5Niw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpkZXNwZWNpZnlGdW5jdGlvblRy
YW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1CiAgICAgICAgIGJvb2wgcmVt
b3ZlZCA9IHRyYW5zaXRpb24tPmRlc3BlY2lmeUZ1bmN0aW9uKGdsb2JhbERhdGEsIHJlcGxhY2VG
dW5jdGlvbik7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiAgICAg
fQotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRy
YW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKwogICAgIHJldHVybiB0cmFuc2l0aW9u
OwogfQogCkBAIC00MjMsOCArNDA5LDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmdldHRlclNl
dHRlclRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUKICAgICBz
dHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsK
ICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0
eVRhYmxlKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwogICAgIHRyYW5zaXRpb24tPm1faXNQaW5u
ZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKLSAgICAKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5hbm9u
eW1vdXNTbG90Q291bnQoKSA9PSB0cmFuc2l0aW9uLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CisK
ICAgICByZXR1cm4gdHJhbnNpdGlvbjsKIH0KIApAQCAtNDM4LDggKzQyMyw3IEBAIFN0cnVjdHVy
ZSogU3RydWN0dXJlOjp0b0RpY3Rpb25hcnlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgU3RydWN0dXJlCiAgICAgdHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlID0gc3RydWN0
dXJlLT5jb3B5UHJvcGVydHlUYWJsZShnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICB0cmFu
c2l0aW9uLT5tX2lzUGlubmVkUHJvcGVydHlUYWJsZSA9IHRydWU7CiAgICAgdHJhbnNpdGlvbi0+
bV9kaWN0aW9uYXJ5S2luZCA9IGtpbmQ7Ci0gICAgCi0gICAgQVNTRVJUKHN0cnVjdHVyZS0+YW5v
bnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkpOwor
CiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CiAKQEAgLTQ5Myw3ICs0NzcsNiBAQCBTdHJ1Y3R1
cmUqIFN0cnVjdHVyZTo6cHJldmVudEV4dGVuc2lvbnNUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgU3RydQogICAgIHRyYW5zaXRpb24tPm1faXNQaW5uZWRQcm9wZXJ0eVRhYmxl
ID0gdHJ1ZTsKICAgICB0cmFuc2l0aW9uLT5tX3ByZXZlbnRFeHRlbnNpb25zID0gdHJ1ZTsKIAot
ICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24t
PmFub255bW91c1Nsb3RDb3VudCgpKTsKICAgICByZXR1cm4gdHJhbnNpdGlvbjsKIH0KIApAQCAt
NTM5LDcgKzUyMiw2IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpmbGF0dGVuRGljdGlvbmFyeVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqCiAgICAgaWYgKGlzVW5jYWNo
ZWFibGVEaWN0aW9uYXJ5KCkpIHsKICAgICAgICAgQVNTRVJUKG1fcHJvcGVydHlUYWJsZSk7CiAK
LSAgICAgICAgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50ID0gbV9hbm9ueW1vdXNTbG90Q291
bnQ7CiAgICAgICAgIHNpemVfdCBwcm9wZXJ0eUNvdW50ID0gbV9wcm9wZXJ0eVRhYmxlLT5zaXpl
KCk7CiAgICAgICAgIFZlY3RvcjxKU1ZhbHVlPiB2YWx1ZXMocHJvcGVydHlDb3VudCk7CiAKQEAg
LTU0OCwxMiArNTMwLDEyIEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpmbGF0dGVuRGljdGlvbmFy
eVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqCiAgICAgICAgIGZvciAo
UHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IG1fcHJvcGVydHlUYWJsZS0+YmVnaW4oKTsg
aXRlciAhPSBlbmQ7ICsraXRlciwgKytpKSB7CiAgICAgICAgICAgICB2YWx1ZXNbaV0gPSBvYmpl
Y3QtPmdldERpcmVjdE9mZnNldChpdGVyLT5vZmZzZXQpOwogICAgICAgICAgICAgLy8gVXBkYXRl
IHByb3BlcnR5IHRhYmxlIHRvIGhhdmUgdGhlIG5ldyBwcm9wZXJ0eSBvZmZzZXRzCi0gICAgICAg
ICAgICBpdGVyLT5vZmZzZXQgPSBhbm9ueW1vdXNTbG90Q291bnQgKyBpOworICAgICAgICAgICAg
aXRlci0+b2Zmc2V0ID0gaTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gQ29weSB0
aGUgb3JpZ2luYWwgcHJvcGVydHkgdmFsdWVzIGludG8gdGhlaXIgZmluYWwgbG9jYXRpb25zCiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyBpKyspCi0gICAg
ICAgICAgICBvYmplY3QtPnB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBhbm9ueW1vdXNTbG90
Q291bnQgKyBpLCB2YWx1ZXNbaV0pOworICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RPZmZz
ZXQoZ2xvYmFsRGF0YSwgaSwgdmFsdWVzW2ldKTsKIAogICAgICAgICBtX3Byb3BlcnR5VGFibGUt
PmNsZWFyRGVsZXRlZE9mZnNldHMoKTsKICAgICB9CkBAIC01NzQsNyArNTU2LDYgQEAgc2l6ZV90
IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGNvbnN0IEkKICAgICBtX2lzUGlubmVkUHJvcGVydHlUYWJsZSA9IHRydWU7CiAK
ICAgICBzaXplX3Qgb2Zmc2V0ID0gcHV0U3BlY2lmaWNWYWx1ZShnbG9iYWxEYXRhLCBwcm9wZXJ0
eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljVmFsdWUpOwotICAgIEFTU0VSVChvZmZzZXQgPj0g
bV9hbm9ueW1vdXNTbG90Q291bnQpOwogICAgIGlmIChwcm9wZXJ0eVN0b3JhZ2VTaXplKCkgPiBw
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQogICAgICAgICBncm93UHJvcGVydHlTdG9yYWdlQ2Fw
YWNpdHkoKTsKICAgICByZXR1cm4gb2Zmc2V0OwpAQCAtNTg5LDcgKzU3MCw2IEBAIHNpemVfdCBT
dHJ1Y3R1cmU6OnJlbW92ZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBjb25zCiAKICAgICBtX2lzUGlubmVkUHJvcGVydHlUYWJsZSA9IHRydWU7CiAg
ICAgc2l6ZV90IG9mZnNldCA9IHJlbW92ZShwcm9wZXJ0eU5hbWUpOwotICAgIEFTU0VSVChvZmZz
ZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291bnQpOwogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKQEAg
LTYzNyw3ICs2MTcsNiBAQCBzaXplX3QgU3RydWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJpbmdJbXBsKiBwcm9wZXJ0eU5hbWUsIHVuc2lnbgogCiAgICAgYXR0cmlidXRl
cyA9IGVudHJ5LT5hdHRyaWJ1dGVzOwogICAgIHNwZWNpZmljVmFsdWUgPSBlbnRyeS0+c3BlY2lm
aWNWYWx1ZS5nZXQoKTsKLSAgICBBU1NFUlQoZW50cnktPm9mZnNldCA+PSBtX2Fub255bW91c1Ns
b3RDb3VudCk7CiAgICAgcmV0dXJuIGVudHJ5LT5vZmZzZXQ7CiB9CiAKQEAgLTY4Nyw4ICs2NjYs
NyBAQCBzaXplX3QgU3RydWN0dXJlOjpwdXRTcGVjaWZpY1ZhbHVlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgcAogICAgIGlmIChtX3Byb3BlcnR5VGFibGUtPmhh
c0RlbGV0ZWRPZmZzZXQoKSkKICAgICAgICAgbmV3T2Zmc2V0ID0gbV9wcm9wZXJ0eVRhYmxlLT5n
ZXREZWxldGVkT2Zmc2V0KCk7CiAgICAgZWxzZQotICAgICAgICBuZXdPZmZzZXQgPSBtX3Byb3Bl
cnR5VGFibGUtPnNpemUoKSArIG1fYW5vbnltb3VzU2xvdENvdW50OwotICAgIEFTU0VSVChuZXdP
ZmZzZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291bnQpOworICAgICAgICBuZXdPZmZzZXQgPSBtX3By
b3BlcnR5VGFibGUtPnNpemUoKTsKIAogICAgIG1fcHJvcGVydHlUYWJsZS0+YWRkKFByb3BlcnR5
TWFwRW50cnkoZ2xvYmFsRGF0YSwgdGhpcywgcmVwLCBuZXdPZmZzZXQsIGF0dHJpYnV0ZXMsIHNw
ZWNpZmljVmFsdWUpKTsKIApAQCAtNzEyLDcgKzY5MCw2IEBAIHNpemVfdCBTdHJ1Y3R1cmU6OnJl
bW92ZShjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHJldHVybiBub3RG
b3VuZDsKIAogICAgIHNpemVfdCBvZmZzZXQgPSBwb3NpdGlvbi5maXJzdC0+b2Zmc2V0OwotICAg
IEFTU0VSVChvZmZzZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291bnQpOwogCiAgICAgbV9wcm9wZXJ0
eVRhYmxlLT5yZW1vdmUocG9zaXRpb24pOwogICAgIG1fcHJvcGVydHlUYWJsZS0+YWRkRGVsZXRl
ZE9mZnNldChvZmZzZXQpOwpAQCAtODQ0LDcgKzgyMSw2IEBAIHZvaWQgU3RydWN0dXJlOjpjaGVj
a0NvbnNpc3RlbmN5KCkKICAgICAgICAgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgZW5kID0gbV9w
cm9wZXJ0eVRhYmxlLT5lbmQoKTsKICAgICAgICAgZm9yIChQcm9wZXJ0eVRhYmxlOjppdGVyYXRv
ciBpdGVyID0gbV9wcm9wZXJ0eVRhYmxlLT5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7
CiAgICAgICAgICAgICBBU1NFUlQoIShpdGVyLT5hdHRyaWJ1dGVzICYgRG9udEVudW0pKTsKLSAg
ICAgICAgICAgIEFTU0VSVChpdGVyLT5vZmZzZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291bnQpOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5oCmluZGV4IDBmNGY0OGM4MzQxMmMxMzUwZDA5MzRjMWI1ZmY2MzM3NjgyOTZmYzMuLjMwMWJh
NWY0YWI5MDM1MjQ3NmQ0MjkxYTRiZTQyODhlMTg5N2RjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC02MiwxMSArNjIsMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAotICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZv
LCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
KQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29u
c3QgVHlwZUluZm8mIHR5cGVJbmZvLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKICAgICAg
ICAgewogICAgICAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsK
ICAgICAgICAgICAgIEFTU0VSVChjbGFzc0luZm8pOwotICAgICAgICAgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkp
IFN0cnVjdHVyZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgdHlwZUluZm8s
IGFub255bW91c1Nsb3RDb3VudCwgY2xhc3NJbmZvKTsKKyAgICAgICAgICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXAp
KSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIHR5cGVJbmZv
LCBjbGFzc0luZm8pOwogICAgICAgICAgICAgc3RydWN0dXJlLT5maW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhKTsKICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmU7CiAgICAgICAgIH0KQEAgLTEz
Myw3ICsxMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIGdyb3dQcm9wZXJ0
eVN0b3JhZ2VDYXBhY2l0eSgpOwogICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSgpIGNvbnN0IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZv
KTsgcmV0dXJuIG1fcHJvcGVydHlTdG9yYWdlQ2FwYWNpdHk7IH0KLSAgICAgICAgdW5zaWduZWQg
cHJvcGVydHlTdG9yYWdlU2l6ZSgpIGNvbnN0IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0lu
Zm8oKSA9PSAmc19pbmZvKTsgcmV0dXJuIG1fYW5vbnltb3VzU2xvdENvdW50ICsgKG1fcHJvcGVy
dHlUYWJsZSA/IG1fcHJvcGVydHlUYWJsZS0+cHJvcGVydHlTdG9yYWdlU2l6ZSgpIDogc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KG1fb2Zmc2V0ICsgMSkpOyB9CisgICAgICAgIHVuc2lnbmVkIHByb3Bl
cnR5U3RvcmFnZVNpemUoKSBjb25zdCB7IEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkg
PT0gJnNfaW5mbyk7IHJldHVybiAobV9wcm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRhYmxlLT5w
cm9wZXJ0eVN0b3JhZ2VTaXplKCkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQgKyAx
KSk7IH0KICAgICAgICAgYm9vbCBpc1VzaW5nSW5saW5lU3RvcmFnZSgpIGNvbnN0OwogCiAgICAg
ICAgIHNpemVfdCBnZXQoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKTsKQEAgLTE1MCw5ICsxNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBz
ZXRIYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGll
cykgeyBtX2hhc0dldHRlclNldHRlclByb3BlcnRpZXMgPSBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0
aWVzOyB9CiAKICAgICAgICAgYm9vbCBoYXNOb25FbnVtZXJhYmxlUHJvcGVydGllcygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXM7IH0KLQotICAgICAgICBib29s
IGhhc0Fub255bW91c1Nsb3RzKCkgY29uc3QgeyByZXR1cm4gISFtX2Fub255bW91c1Nsb3RDb3Vu
dDsgfQotICAgICAgICB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQoKSBjb25zdCB7IHJldHVy
biBtX2Fub255bW91c1Nsb3RDb3VudDsgfQogICAgICAgICAKICAgICAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRhYmxlLT5pc0Vt
cHR5KCkgOiBtX29mZnNldCA9PSBub09mZnNldDsgfQogCkBAIC0xOTEsNyArMTg4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAKICAgICBwcml2YXRlOgotICAgICAgICBTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mLCB1
bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyopOworICAgICAgICBT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgVHlwZUluZm8mLCBjb25zdCBDbGFzc0luZm8qKTsKICAgICAgICAgU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYpOwogICAgICAgICBTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgY29uc3Qg
U3RydWN0dXJlKik7CiAKQEAgLTI3OCwxMCArMjc1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHVuc2lnbmVkIG1fYXR0cmlidXRlc0luUHJldmlvdXMgOiA3OwogI2VuZGlmCiAgICAgICAg
IHVuc2lnbmVkIG1fc3BlY2lmaWNGdW5jdGlvblRocmFzaENvdW50IDogMjsKLSAgICAgICAgdW5z
aWduZWQgbV9hbm9ueW1vdXNTbG90Q291bnQgOiA1OwogICAgICAgICB1bnNpZ25lZCBtX3ByZXZl
bnRFeHRlbnNpb25zIDogMTsKICAgICAgICAgdW5zaWduZWQgbV9kaWRUcmFuc2l0aW9uIDogMTsK
LSAgICAgICAgLy8gMyBmcmVlIGJpdHMKKyAgICAgICAgLy8gOCBmcmVlIGJpdHMKICAgICB9Owog
CiAgICAgaW5saW5lIHNpemVfdCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKQEAgLTI5Miw3ICsyODgsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBub3RGb3VuZDsKIAogICAgICAgICBQ
cm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZChwcm9wZXJ0eU5h
bWUuaW1wbCgpKS5maXJzdDsKLSAgICAgICAgQVNTRVJUKCFlbnRyeSB8fCBlbnRyeS0+b2Zmc2V0
ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsKICAgICAgICAgcmV0dXJuIGVudHJ5ID8gZW50cnkt
Pm9mZnNldCA6IG5vdEZvdW5kOwogICAgIH0KIApAQCAtMzA0LDcgKzI5OSw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAgICAgIFByb3BlcnR5
TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kV2l0aFN0cmluZyhuYW1lLmlt
cGwoKSkuZmlyc3Q7Ci0gICAgICAgIEFTU0VSVCghZW50cnkgfHwgZW50cnktPm9mZnNldCA+PSBt
X2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZz
ZXQgOiBub3RGb3VuZDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVDaGFpbi5oCmluZGV4IGM4ZTQyYjI2YTcyYzk2Y2QwM2M0NjY0NmM2MjAyMTQ0
YmU1MGIzNmMuLmNkZDY0ZWY2YTYxYWU0MTQ0MDMzYjA3ZmMxZWMxOTI3MDMxYWRkMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaApAQCAtNTQs
NyArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4qIGhlYWQoKSB7IHJldHVybiBtX3ZlY3Rvci5nZXQoKTsgfQogICAgICAgICB2b2lkIHZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKIAotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlw
ZSwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiksIDAsICZzX2luZm8pOyB9CisgICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7IH0K
ICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwppbmRleCAxODRiYjc5NzBmNDU0ZjNmNjU4ZTJmMWRmM2UwZDNmMDczZjJkODM2
Li4zZDcxZTU0NmVhZDgzNmMxNjEzNWI0ZjMxZjIzYjc4YjFjOTQxMDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOS0wOSAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBhbm9ueW1vdXMg
c3RvcmFnZSBmcm9tIGpzb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc4ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEb24ndCBuZWVkIGFuIGFub255bW91cyBzbG90IGNvdW50IGFueW1vcmUK
KworICAgICAgICAqIFVzZXJPYmplY3RJbXAuaDoKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5i
ZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQg
Y29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDUvNykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5oCmluZGV4IDI2Y2VlZGNkYzA1MzMzZjJiMTE3MDBjZTIxZjZhZTM3Zjcy
YjYxOWEuLjQzZmYwZGE4ZDc1NmFmZTZmZjNkN2M4NjM5YTlkMzEzYWFkMDViYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgJnNfaW5mbyk7CiAg
ICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhiMThhOWQwNDlhMzdmOGE0YjRmZjI5MzJi
NmMyMmI3NmU1YjE1MjAuLjM0ZGU0OWUzOWQxMDlmMjkyZTlhYTc4MjA2YmM3ZDNlYTg4NjIxZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAxMS0wOS0wOSAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBhbm9ueW1vdXMg
c3RvcmFnZSBmcm9tIGpzb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc4ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgYWxsIHVzZSBvZiBhbm9ueW1vdXMgc2xvdHMsIHRoaXMgcmVx
dWlyZWQgbW9kaWZ5aW5nCisgICAgICAgIGJpbmRpbmdzIGdlbmVyYXRpb24gdG8gYWRkIG1lbWJl
ciB2YXJpYWJsZXMgZm9yIGNhY2hlZCBhdHRyaWJ1dGVzLAorICAgICAgICBhbmQgb3ZlcnJpZGUg
dmlzaXRDaGlsZHJlbiB3aXRoIHRoZSBuZWNlc3NhcnkgbG9naWMgdG8gbWFyayB0aG9zZQorICAg
ICAgICBuZXcgbWVtYmVycy4KKworICAgICAgICBJIGFkZGVkIGJpbmRpbmdzIGdlbmVyYXRpb24g
dGVzdHMgZm9yIHRoZXNlIHZhbHVlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9D
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb0NvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ29uc3RydWN0b3JPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dC
YXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
U2hlbGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdyYXBwZXI6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0ltYWdlQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNz
YWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmRh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6
SlNXb3JrZXJDb250ZXh0QmFzZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25z
dHJ1Y3RvckRlY2xhcmF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVy
ZmFjZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFj
ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T2JqQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9iakNhY2hlZEF0dHJpYnV0ZTIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjp2aXNp
dENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9iakludGVybmFsOjpjYWNoZWRBdHRyaWJ1dGUxQXR0ckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqSW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTJBdHRyR2V0dGVyKToKKyAgICAg
ICAgKiBicmlkZ2UvYy9DUnVudGltZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6
Q1J1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL2MvY19p
bnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU1ldGhvZDo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0Mu
Y3BwOgorICAgICAgICAoSmF2YVJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OkphdmFSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAq
IGJyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpPYmpDUnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uv
b2JqYy9vYmpjX2luc3RhbmNlLm1tOgorICAgICAgICAoT2JqQ1J1bnRpbWVNZXRob2Q6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAg
ICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UnVu
dGltZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21l
dGhvZC5oOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6UnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wOS0wOSAgRXJpayBB
cnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgRWxlbWVudC5jb250
YWlucyB0byBOb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1
ZGlvQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25z
dHJ1Y3Rvci5oCmluZGV4IGE3YTkwN2RmNGNhYmQ3MzFkZmYxY2I5NWQwOGY1Y2NhOWYzYzcxMzku
LjE5ZTY0NWZiZGZhNzhhNGY5NGUwZWRkMzRhZjc5NTI5ODQxOTcyZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oCkBAIC00NSw3ICs0NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CmluZGV4IGMxYzgzN2VlMjcwMDJmYjQ5MDYwOWRiMTE5Mzg5YzEwYmM4MTllNDguLmFjOGU5ODA4
YTQ1Y2I0MmJmZjNlNjM1YmJlMjVmYTdlMzBhZmExMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCA5YTgzOGJmOWE4M2M0OWMxYzQxZTNj
YjI3NzUxMDhhYzQ5N2YwMDgxLi4wMTRiNTY5YmEyYjMxZTk1MzlkNzZlNTM1YjA1ZTk3NmY0M2Ji
ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmgKQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4
IGY3NzE4MDg3Y2U1ODMwYTZlNWM2NjcxOWE1ODc4MGJhMzZiOTA2NGIuLmEyYzQ3ODU1MzI4OTdl
MDYxOGMxOTU5MDQ3MjkwODNmNzczODFkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Byb2ZpbGluZygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDg3
ZDAyNmRiZTA1OGNmZmMxODZlNTk1MjUwM2I4MjU5MzA1NzNkNDAuLmZlOGE0ZmRlMDkxNjIzMWZk
MzdkNjNmY2ExNDhkMzg3YmNkZTM4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAogICAg
ICAgICB9CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCgpIHsgcmV0dXJuIG1fd29y
bGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKaW5k
ZXggMmRhM2ZhMDM0ZDZmNjFiOThmYTA4Y2Q4MzU2YTZkMzUzNGIzODdjOS4uMzY4NWM4OWU2ODQ4
OGYzZTFkODljZWFhMzQ4YzliMWViNDk4ODRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XcmFwcGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCmluZGV4IDNjOTM1MWM3NGZhNDBj
OGE0MWNhNzBiYzk4NmFiMjhlZTJjZWQwMTguLjM1YzQ0MzQwNjQxNjIzY2E0MGI1NWE2MGI2NTk1
OGU5YmFiNzRmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1h
Z2VDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VD
b25zdHJ1Y3Rvci5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggZmIw
MzVjNWUyMDc2ZWI1OTQxMWExMWE1NjQ0M2ZlZWI0Y2Y2ZjkxYS4uOGJlODFiZWNjYmQ0ZWVjNGI5
NjY1NjNkMGI4ZjIyMzRkMzcyYTE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIEpTVmFsdWUgSlNNZXNzYWdlRXZlbnQ6OmRhdGEoRXhlY1N0YXRlKiBl
eGVjKSBjb25zdAogewotICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gZ2V0QW5vbnltb3Vz
VmFsdWUoSlNNZXNzYWdlRXZlbnQ6OmRhdGFTbG90KSkKKyAgICBpZiAoSlNWYWx1ZSBjYWNoZWRW
YWx1ZSA9IG1fZGF0YS5nZXQoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlOwogCiAgICAg
TWVzc2FnZUV2ZW50KiBldmVudCA9IHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGltcGwoKSk7
CkBAIC03Myw3ICs3Myw3IEBAIEpTVmFsdWUgSlNNZXNzYWdlRXZlbnQ6OmRhdGEoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAogICAgIH0KIAogICAgIC8vIFNhdmUgdGhlIHJlc3VsdCBzbyB3ZSBkb24n
dCBoYXZlIHRvIGRlc2VyaWFsaXplIHRoZSB2YWx1ZSBhZ2Fpbi4KLSAgICBjb25zdF9jYXN0PEpT
TWVzc2FnZUV2ZW50Kj4odGhpcyktPnB1dEFub255bW91c1ZhbHVlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgSlNNZXNzYWdlRXZlbnQ6OmRhdGFTbG90LCByZXN1bHQpOworICAgIGNvbnN0X2Nhc3Q8SlNN
ZXNzYWdlRXZlbnQqPih0aGlzKS0+bV9kYXRhLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTE1LDcgKzExNSw3IEBAIEpT
Qzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChKU0M6OkV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVlLT5kZXNlcmlhbGl6ZShl
eGVjLCBnbG9iYWxPYmplY3QoKSwgTm9uVGhyb3dpbmcpOwogICAgIGVsc2UKICAgICAgICAgcmVz
dWx0ID0ganNOdWxsKCk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBKU01lc3NhZ2VFdmVudDo6ZGF0YVNsb3QsIHJlc3VsdCk7CisgICAgbV9kYXRhLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlc3VsdCk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0
b3IuaAppbmRleCA2OTM5ZmJmOGI4OTFmZGUzMDI1OThhZDY2YzU3MDhiYWRhMTczY2ZkLi4zOTI2
MWEwOTdkNTU4ZWNkMDkwNDZhYTY4MjEwNjFhMzhiZTg4ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oCkBAIC0zNyw3ICszNyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRCYXNlLmgKaW5kZXggMGI2NjhkZjcwZTVjOWRmMjdkODgzYjJhMGUxZGI1NjdkMDZiZTdk
Ni4uYjA4NjMzNmM0NDJkNThkZDM4ZTdhNjM5YjRiYjYwZjhhZGYwYmZhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaApAQCAtNTEsNyAr
NTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFm
MjRiOTRkMjc5Mzk2MzkyMTNhNGEyNzk1MTY5MjM4MDA5ZTdkZmUuLmU4OWZiM2ZlZDQzZDBlNWQ0
M2I2MjliNDlhY2E3MTI3OTVlN2QwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC04MDMsMTUgKzgwMyw5IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsCiAgICAgICAgICIgICAgc3Rh
dGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSlcbiIgLgogICAgICAgICAiICAgIHtcbiIgLgotICAgICAgICAiICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgorICAgICAgICAiICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7XG4iIC4KICAgICAgICAgIiAgICB9XG5cbiIpOwogCi0gICAgIyB2aXNpdCBmdW5jdGlv
bgotICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4pIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJik7
XG5cbiIpOwotICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiJ9ID0gMTsKLSAgICB9Ci0KICAgICAjIEN1c3RvbSBwdXNoRXZlbnRIYW5kbGVyU2NvcGUg
ZnVuY3Rpb24KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgSlNDOjpTY29w
ZUNoYWluTm9kZSogcHVzaEV2ZW50SGFuZGxlclNjb3BlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpT
Y29wZUNoYWluTm9kZSopIGNvbnN0O1xuXG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21QdXNoRXZlbnRIYW5kbGVyU2NvcGUifTsKIApAQCAtODY4LDE2ICs4NjIs
MTkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAkbnVtQ3VzdG9tQXR0cmlidXRl
cysrIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUdldHRlciJ9IHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQ0N1c3RvbUdldHRlciJ9OwogICAgICAgICAgICAgJG51bUN1c3RvbUF0dHJpYnV0ZXMrKyBp
ZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21TZXR0
ZXIifSB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0ND
dXN0b21TZXR0ZXIifTsKICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNoZWRBdHRyaWJ1dGUifSkgewotICAgICAgICAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkICIgLiAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiU2xvdCA9ICRudW1DYWNoZWRBdHRyaWJ1dGVzICsg
QmFzZTo6QW5vbnltb3VzU2xvdENvdW50O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fIiAuICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICI7XG4iKTsKICAgICAgICAgICAgICAgICAkbnVt
Q2FjaGVkQXR0cmlidXRlcysrOworICAgICAgICAgICAgICAgICRuZWVkc01hcmtDaGlsZHJlbiA9
IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoJG51bUNhY2hl
ZEF0dHJpYnV0ZXMgPiAwKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdXNp
bmcgJHBhcmVudENsYXNzTmFtZSIgLiAiOjpwdXRBbm9ueW1vdXNWYWx1ZTtcbiIpOwotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHVzaW5nICRwYXJlbnRDbGFzc05hbWUiIC4gIjo6
Z2V0QW5vbnltb3VzVmFsdWU7XG4iKTsKKyAgICAjIHZpc2l0IGZ1bmN0aW9uCisgICAgaWYgKCRu
ZWVkc01hcmtDaGlsZHJlbikgeworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImKTtcblxuIik7CisgICAg
ICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIn0gPSAxOwog
ICAgIH0KKwogICAgIGlmICgkbnVtQ3VzdG9tQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVzXG4iKTsKIApAQCAt
OTIxLDEyICs5MTgsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oQmFz
ZTo6aW1wbCgpKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cbiIp
OwogICAgIH0KLSAgICAKLSAgICAjIGFub255bW91cyBzbG90cwotICAgIGlmICgkbnVtQ2FjaGVk
QXR0cmlidXRlcykgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEFub255bW91c1Nsb3RDb3VudCA9ICRudW1DYWNoZWRBdHRyaWJ1dGVzICsgQmFzZTo6QW5vbnlt
b3VzU2xvdENvdW50O1xuIik7Ci0gICAgfQogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInBy
b3RlY3RlZDpcbiIpOwogICAgICMgQ29uc3RydWN0b3IKQEAgLTEwNDYsNyArMTAzNyw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsCiAgICAgICAgICIgICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSlcbiIgLgogICAgICAgICAiICAgIHtcbiIgLgotICAgICAgICAiICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgorICAgICAgICAiICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7XG4iIC4KICAgICAgICAgIiAgICB9XG4iKTsKICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1bmN0aW9uIn0pIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNW
YWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwpAQCAtMTUzMywyMyArMTUyNCw4IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICB9CiAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTtcbiIpOwotICAgIGlm
ICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgZm9yICh1bnNpZ25lZCBpID0gQmFzZTo6QW5vbnltb3VzU2xvdENvdW50OyBpIDwgQW5v
bnltb3VzU2xvdENvdW50OyBpKyspXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBpLCBK
U1ZhbHVlKCkpO1xuIik7Ci0gICAgfQogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
IAotICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0
b3IpXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19p
bmZvKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VS
VChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENo
aWxkcmVuKCkpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnZp
c2l0Q2hpbGRyZW4odmlzaXRvcik7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaW1wbCgpLT52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7XG4iKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotICAgIH0KLQogICAgIGlmICghJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXh0ZW5kc0RPTUdsb2JhbE9iamVjdCJ9KSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6Y3JlYXRlUHJv
dG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwpAQCAtMTYxOCw2ICsxNTk0LDEw
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAke2NsYXNzTmFtZX0qIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNP
YmplY3Qoc2xvdEJhc2UpKTtcbiIpOwogCisgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7Cisg
ICAgICAgICAgICAgICAgICAgICRuZWVkc01hcmtDaGlsZHJlbiA9IDE7CisgICAgICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNoZWNrRG9tYWluU2VjdXJpdHkifSAmJiAKICAgICAgICAgICAgICAgICAgICAgICAgICEk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrRG9t
YWluU2VjdXJpdHkifSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tEb21haW5TZWN1cml0eU9u
R2V0In0pIHsKQEAgLTE2NjMsNyArMTY0Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDYWNoZWRBdHRyaWJ1dGUifSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgJGNhY2hlSW5kZXggPSAkY3VycmVudENhY2hlZEF0dHJpYnV0ZTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICRjdXJyZW50Q2FjaGVkQXR0cmlidXRlKys7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IGNh
c3RlZFRoaXMtPmdldEFub255bW91c1ZhbHVlKCIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICJTbG90KSlcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBt
XyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiLmdldCgpKVxuIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGNhY2hl
ZFZhbHVlO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KIApAQCAtMTY4OCw3ICsxNjY4LDcg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+cHV0QW5vbnltb3Vz
VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAiIC4gJGNsYXNzTmFtZSAuICI6OiIgLiAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiU2xvdCwgcmVzdWx0KTtcbiIpIGlmICgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNoZWRBdHRyaWJ1dGUifSk7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIG1fIiAuICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVz
dWx0KTtcbiIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDYWNoZWRBdHRyaWJ1dGUifSk7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiByZXN1bHQ7XG4iKTsKIAogICAgICAgICAgICAgICAgIH0gZWxzZSB7
CkBAIC0yMTkyLDYgKzIxNzIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgICAgICAgICBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCRmdW5jdGlv
biwgJGZ1bmN0aW9uU3RyaW5nLCAkcGFyYW1JbmRleCwgIiAgICAiLCAkc3ZnUHJvcGVydHlUeXBl
LCAkaW1wbENsYXNzTmFtZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKICAgICAgICAgICAgIGlm
ICgkZnVuY3Rpb24tPntvdmVybG9hZHN9ICYmIEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0gPiAx
ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID09IEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRz
fX0pIHsKQEAgLTIyMDMsNiArMjE4NCwyOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG5cbiIpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoJG5lZWRzTWFya0NoaWxk
cmVuICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21NYXJrRnVuY3Rp
b24ifSkgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcilcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVy
ZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldp
dGhvdXRTZXR0aW5nRmxhZyk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVu
KCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjp2aXNp
dENoaWxkcmVuKHZpc2l0b3IpO1xuIik7CisgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifSkgeworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGltcGwoKS0+dmlzaXRKU0V2ZW50TGlzdGVuZXJzKHZpc2l0b3Ip
O1xuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJG51bUNhY2hlZEF0dHJpYnV0
ZXMgPiAwKSB7CisgICAgICAgICAgICAgICAgZm9yZWFjaCAoQHskZGF0YU5vZGUtPmF0dHJpYnV0
ZXN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGUgPSAkXzsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAobV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4g
IilcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKCZtXyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAi
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAg
ICB9CisgICAgICAgIGRpZSAiQ2FuJ3QgZ2VuZXJhdGUgYmluZGluZyBmb3IgY2xhc3Mgd2l0aCBj
YWNoZWQgYXR0cmlidXRlIGFuZCBjdXN0b20gbWFyay4iIGlmICgoJG51bUNhY2hlZEF0dHJpYnV0
ZXMgPiAwKSBhbmQgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU1hcmtG
dW5jdGlvbiJ9KSk7CiAgICAgfQogCiAgICAgaWYgKCRudW1Db25zdGFudHMgPiAwKSB7CkBAIC0z
MTE3LDcgKzMxMjEsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiAKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIik7CisgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgfVxuIik7CiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJwcm90ZWN0ZWQ6XG4iKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggMjZkZTE4M2ZlYjdjNmE0M2NhZWRiOWNlZGVjNGYy
YTQwZGU2ZmJiMi4uNTA0N2M2MTM2MzYwMmMzZjczY2JmN2JjOTZiZjQ1OTAyOWI0ZmQ5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1l
bnRzSGFzSW5zdGFuY2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmgKaW5kZXggYjc0ZDY5MTgxMDBiY2Y4NGRlMGFlODE0NGY1MmFlMGNhMjg1
N2Q2MC4uNDMyZjczYjc0YWEzODFkMTgxYTdjMTMxOTIyNWFhYWNmZTFlZmRlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwpAQCAtNzQsNyArNzQs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAg
ICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggNGI1ODU2ZWRlNDA2MmY5
MDA0ODBmYWM5OWIyNzAwMmQwODg1YTM4NS4uMzI2YmIyYjE3OGE4OTY4YTRlM2MyN2UyZGM2NjAx
NmU3MjljNDc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiBwcm90
ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8
IERPTUNvbnN0cnVjdG9yT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IGUzNTVhZDgwMDg4ZmM2ZDU4NGQ3ZTVkZTIy
OTcwYWFkNWQ3ZjZiZWQuLmQ0ZDVmNjU0MTllZGQ5MGVlOTY2NTBjOTdiMTkyZThmZDc4NTAzY2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNDQsNyAr
NDQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBkMmQ2
MzdlOGFlZjA0NTYyNzYzOWJmZDRjMWYwYzNhMGUwNWU1MDk3Li4zYmIzMDdlNjc5YmE5MjMzNDNj
MTE1MjM3MmRmNDExY2MzMzU5Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTE2LDYgKzExNiw4IEBAIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiAgICAgeyAiY29uZGl0aW9u
YWxBdHRyNiIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KXNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvciBUSFVOS19HRU5F
UkFUT1IoMCkgfSwKICNlbmRpZgorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTEiLCBEb250RGVsZXRl
IHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMSksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVS
QVRPUigwKSB9LAorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTIiLCBEb250RGVsZXRlIHwgUmVhZE9u
bHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqQ2FjaGVkQXR0cmlidXRlMiksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9
LAogICAgIHsgImRlc2NyaXB0aW9uIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakRlc2NyaXB0
aW9uKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiaWQiLCBEb250
RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iaklkKSwgKGludHB0cl90KXNldEpTVGVzdE9iaklkIFRIVU5LX0dFTkVSQVRPUigw
KSB9LAogICAgIHsgImhhc2giLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSGFzaCksIChpbnRw
dHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LApAQCAtMTI0LDcgKzEyNiw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KIH07CiAKICN1bmRl
ZiBUSFVOS19HRU5FUkFUT1IKLXN0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBK
U1Rlc3RPYmpUYWJsZSA9IHsgMTM0LCAxMjcsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07Citz
dGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0T2JqVGFibGUgPSB7IDEz
NSwgMTI3LCBKU1Rlc3RPYmpUYWJsZVZhbHVlcywgMCB9OwogLyogSGFzaCB0YWJsZSBmb3IgY29u
c3RydWN0b3IgKi8KICNpZiBFTkFCTEUoSklUKQogI2RlZmluZSBUSFVOS19HRU5FUkFUT1IoZ2Vu
ZXJhdG9yKSAsIGdlbmVyYXRvcgpAQCAtMTc5LDcgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVt
ZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpA
QCAtNjcwLDYgKzY3MiwzMiBAQCBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsCiAKICNlbmRpZgogCitK
U1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKKyAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1fY2FjaGVk
QXR0cmlidXRlMS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlOworICAgIFRlc3RP
YmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAg
IEpTVmFsdWUgcmVzdWx0ID0gaW1wLT5jYWNoZWRBdHRyaWJ1dGUxKCkgPyBpbXAtPmNhY2hlZEF0
dHJpYnV0ZTEoKS0+ZGVzZXJpYWxpemUoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkp
IDoganNOdWxsKCk7CisgICAgbV9jYWNoZWRBdHRyaWJ1dGUxLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitKU1ZhbHVlIGpz
VGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKKyAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1fY2FjaGVkQXR0cmlidXRl
Mi5nZXQoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlOworICAgIFRlc3RPYmoqIGltcCA9
IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUg
cmVzdWx0ID0gaW1wLT5jYWNoZWRBdHRyaWJ1dGUyKCkgPyBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIo
KS0+ZGVzZXJpYWxpemUoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpIDoganNOdWxs
KCk7CisgICAgbV9jYWNoZWRBdHRyaWJ1dGUyLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCiBKU1ZhbHVlIGpzVGVzdE9iakRl
c2NyaXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRp
ZmllciYpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0
T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKQEAgLTE4MTUsNiArMTg0MywxOCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRo
b2RXaXRoT3B0aW9uYWwoRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAordm9pZCBKU1Rlc3RPYmo6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7
CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01Q
SUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJy
aWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1
cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOworICAgIEJhc2U6OnZp
c2l0Q2hpbGRyZW4odmlzaXRvcik7CisgICAgaWYgKG1fY2FjaGVkQXR0cmlidXRlMSkKKyAgICAg
ICAgdmlzaXRvci5hcHBlbmQoJm1fY2FjaGVkQXR0cmlidXRlMSk7CisgICAgaWYgKG1fY2FjaGVk
QXR0cmlidXRlMikKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1fY2FjaGVkQXR0cmlidXRlMik7
Cit9CisKIC8vIENvbnN0YW50IGdldHRlcnMKIAogSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxV
RV8wKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5k
ZXggNGQwZjc5N2MzZGM1MjU5YjdiZmMxOWEwMjk4Nzk3NDY5ZTE3ZjNiZi4uZmI3NGI1NjA5OTc5
ZTI2NjQzNWQ3ZDU0NTliZDc2NmFjMDM0MTk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtNDUsMTAgKzQ1LDE0IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
Qzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlND
OjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CisgICAgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBtX2Nh
Y2hlZEF0dHJpYnV0ZTE7CisgICAgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBtX2Nh
Y2hlZEF0dHJpYnV0ZTI7CisgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpTbG90
VmlzaXRvciYpOworCiAKICAgICAvLyBDdXN0b20gYXR0cmlidXRlcwogICAgIEpTQzo6SlNWYWx1
ZSBjdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKikgY29uc3Q7CkBAIC02Myw3ICs2Nyw3IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPFRlc3RPYmo+IG1faW1wbDsKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3RPYmooSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVz
dE9iaj4pOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIH07CiAKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBUZXN0T2JqKik7CkBAIC04MywxMyArODcsMTMgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBKU1Rlc3RP
YmpQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNOb25GaW5hbE9iamVj
dChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7IH0K
IHByb3RlY3RlZDoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBK
U0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiB9OwogCiAvLyBGdW5jdGlvbnMKQEAgLTIwMSw2ICsyMDUsOCBAQCBK
U0M6OkpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLAogdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVl
KTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9p
ZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpD
YWNoZWRBdHRyaWJ1dGUxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6
OklkZW50aWZpZXImKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIEpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqSWQo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwog
dm9pZCBzZXRKU1Rlc3RPYmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAppbmRleCBiMDc5MzM5ODFiYzgzNjA2MDJmZTIzOWE3MWZkYjNjZTkw
NWFiM2FkLi43MzJiMjcyODFhMDhhNTJiNzIwN2QxZmQyMjZhMzg4ZGYyZjgyZGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJ
bmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiBwcm90ZWN0
ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IERP
TUNvbnN0cnVjdG9yT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCA2ZGZhNzgxMGVjMzYz
MzgxOTZhN2JjZjk0M2I2MmFjODUyYWNlOThmLi5jMTRkZDkwYjRmYjY2NGU0MjZhY2UyN2IzMDYw
NjhmZTVkYTM4MGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC03
NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19p
bmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRl
eCA0YWNhZTZhOTM4ZTgwZWMwMmRlYzA0YTA4MTBlNzczMjU5NjU4MzgwLi43NWI0OWFiYzI4NDMx
NWUzMTU3MGI5NjliYjE1OWNkMmExODdjOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xNDYsNiArMTQ2LDExIEBAIG1vZHVs
ZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRp
dGlvbjJdIFRlc3RPYmplY3RDQ29uc3RydWN0b3IgY29uZGl0aW9uYWxBdHRyNjsKIAogI2lmIGRl
ZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQorICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0ZV0gYW55IGNhY2hlZEF0dHJpYnV0ZTE7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVkQXR0cmli
dXRlMjsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJ
TkdfSlMpCiAgICAgICAgIC8vIE92ZXJsb2FkcwogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRN
ZXRob2QoaW4gVGVzdE9iaiBvYmpBcmcsIGluIERPTVN0cmluZyBzdHJBcmcpOwogICAgICAgICB2
b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gVGVzdE9iaiBvYmpBcmcsIGluIFtPcHRpb25hbF0g
bG9uZyBpbnRBcmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA1NmQ2YzdhNDgzOGJkODg1MTA0NDAwMDRhOTRj
MjFjMTBmMDhlNzhlLi44ZGQ2NjYyZjQxNDJlYTcyMmU2NDYxYmU0NTE4MDgxZmU4NWU2YjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0
LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VGVzdENhbGxiYWNrLmgiCisj
aW5jbHVkZSAiVjhhbnkuaCIKICNpbmNsdWRlICJWOGludC5oIgogI2luY2x1ZGUgIlY4bG9nLmgi
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtNTgwLDYgKzU4MSwzNCBAQCBzdGF0aWMgdm9p
ZCBjb25kaXRpb25hbEF0dHIzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OgogCiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhY2hlZEF0dHJpYnV0
ZTFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY2FjaGVkQXR0cmli
dXRlMS5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZv
LkhvbGRlcigpKTsKKyAgICBSZWZQdHI8YW55PiByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0
ZTEoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/
IGdldERPTU9iamVjdE1hcCgpLmdldChyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7CisgICAgICAgIHdyYXBwZXIgPSB0
b1Y4KHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCisgICAg
ICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVy
KCksICJjYWNoZWRBdHRyaWJ1dGUxIiwgd3JhcHBlcik7CisgICAgfQorICAgIHJldHVybiB3cmFw
cGVyOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhY2hlZEF0dHJpYnV0ZTJB
dHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY2FjaGVkQXR0cmlidXRl
Mi5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKKyAgICBSZWZQdHI8YW55PiByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIo
KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IGdl
dERPTU9iamVjdE1hcCgpLmdldChyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KCk7CisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7CisgICAgICAgIHdyYXBwZXIgPSB0b1Y4
KHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCisgICAgICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCks
ICJjYWNoZWRBdHRyaWJ1dGUyIiwgd3JhcHBlcik7CisgICAgfQorICAgIHJldHVybiB3cmFwcGVy
OworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVBdHRy
MUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5lbmFibGVkQXRSdW50
aW1lQXR0cjEuX2dldCIpOwpAQCAtMTI3Nyw2ICsxMzA2LDEwIEBAIHN0YXRpYyBjb25zdCBCYXRj
aGVkQXR0cmlidXRlIFRlc3RPYmpBdHRyc1tdID0gewogICAgIC8vIEF0dHJpYnV0ZSAnY29uZGl0
aW9uYWxBdHRyNicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCcpCiAg
ICAgeyJjb25kaXRpb25hbEF0dHI2IiwgVGVzdE9iakludGVybmFsOjpUZXN0T2JqQ29uc3RydWN0
b3JHZXR0ZXIsIDAsICZWOFRlc3RPYmplY3RDOjppbmZvLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpSZWFkT25seSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICAvLyBBdHRyaWJ1dGUgJ2NhY2hl
ZEF0dHJpYnV0ZTEnIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAnQ2FjaGVk
QXR0cmlidXRlJykKKyAgICB7ImNhY2hlZEF0dHJpYnV0ZTEiLCBUZXN0T2JqSW50ZXJuYWw6OmNh
Y2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRy
aWJ1dGUgJ2NhY2hlZEF0dHJpYnV0ZTInIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRB
dHRyOiAnQ2FjaGVkQXR0cmlidXRlJykKKyAgICB7ImNhY2hlZEF0dHJpYnV0ZTIiLCBUZXN0T2Jq
SW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTJBdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ2Rlc2NyaXB0aW9uJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0
ZScgRXh0QXR0cjogJycpCiAgICAgeyJkZXNjcmlwdGlvbiIsIFRlc3RPYmpJbnRlcm5hbDo6ZGVz
Y3JpcHRpb25BdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUg
J2lkJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvQ1J1bnRpbWVPYmplY3QuaAppbmRleCBlZjE5YzhhNmViMzJlMzRlODdhNjEwNzhiODQ1ZTBl
NjAwZTdiMzM2Li5mOTg0YTVjYThhN2ViYTZiMzQ3ODMwZTE2YzE2YWJkMzhiZTJkMGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKQEAgLTU2LDcgKzU2LDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKaW5kZXggZmNkMjQy
YTVhOWM1OGViOTdmMjg3Y2MwN2E5YThhM2RiMjg5YTRjMS4uZGU2MTQ0OTUxNzJkY2JkYTVlYTkz
YjAxMDQxMDE0YzI2MWM2N2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Y19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5j
cHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VK
U0MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNw
cAppbmRleCA3ZTY5ZmJlYjU3ZTA4YzJiMTA1YWMzMzZlNjcyNDgzYWM1ZjlhM2FlLi4zOTcyMDA5
N2Q1YTJhMjg3NWYzNzBjOWZiMDRlYzAyNmMxMDYwMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKQEAgLTEyOCw3ICsxMjgsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQog
CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAppbmRleCBiYjE3OTM4NjRiYTMz
NTIwMWZlODAxMzllYWZhZDMzZGY3Mjc2MTM4Li44ZmE0NTJlZThkYjc0ZDY5YTcyZTkxNjY4ZmUy
ODFkZjQ3MGRlODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9K
YXZhUnVudGltZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFSdW50aW1lT2JqZWN0LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCmluZGV4IDAzNDBjMDUxYmU5
YjEwY2ViMTQ4ZjU4NDAyZmZkY2ZmYmIyYmQxOWIuLmRkNzMzOTBkNzdkZTFhOTM4YWNlYzgxZmEz
MjFhNTZiNTQ4NDQ5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09i
akNSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1
bnRpbWVPYmplY3QuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KaW5kZXggZjJkNzlhNjUxM2JkNzRiOWI4MWEx
NTI5YzQzNzc5NzlmYzI3ZWVkZC4uYTZhYWY2MDUzOGRhMTA2Nzc2NDk5NmIwMjI5ZGY2ODU2ZmRj
MmY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5j
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCkBA
IC0xODMsNyArMTgzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IDM0NjQ4NDhh
YmRmMjYyOTgyMzFkZjJiNzZmYjU4ZjUyN2ExOWQwZGEuLjgzODBiOWRhYTEyMzk1NDQ0YTFmMGIx
YWI3M2YzNWFiY2I1MTE2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmgKaW5kZXggNmNiOGViMzNkN2RjNjViMGQ0MzZhMGFiY2ZhMGZmYWQ4ZmFj
ODg1ZC4uYTA4NzdhMDYyZGQ2OTljMTc1ZGUxNmRmM2NhZmFhZGYxMGNjOGRjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggNDRiMDg3YWQyYjdkODJh
Y2VkYWE4MmZhZDAzZGQxYjY4ZTI4NTk2Ny4uZDFhYjk5ZGU3ZWIwMmRmMjRjNGYwNGI0NTI2NmY4
NjRjYjBmMjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aAppbmRleCA4N2I3ZjcwNjY3OWEyNjVjMjg1ZTdhNjVhOWI2YTlhODRjMDYyZTk4Li5hMmM5Mjg4
ODM3YmVjM2YyZGZlZDNkYzk0YzZjZGU2MjNmNDkxMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYTkwMDgyMDk4ZThmNjc1ZTlmNjMzMGNjN2Y5ODM4MTY2YmQyOTJmNC4uMzJjNDFl
Zjc2YTdjMTM0MGE2ZGY5MGFjZTRhZDBlYTRhZGQzOWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNv
YmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
Nzg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSB0aGUgdXNlIG9mIEFub255bW91c1Nsb3RDb3VudAorCisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0
aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVu
dGltZU9iamVjdC5oOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVPYmplY3Q6OmNyZWF0
ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLnto
fGNwcH0gdG8gUGFnZS57aHxjcHB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCAxZGYwMmRmYzZhMWE1ZWZiMWJjMjAyMmI4Njc0
YWUxYzM3NThmZjgwLi5hOGEyN2E5MmFlNDViMGEwZDZhM2U0ZTYyYTE1OWMzNzk0ZTM2OGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0KQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRp
bWVPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGlt
ZU9iamVjdC5oCmluZGV4IDVhZTk4Mzg1MDQwNGY1MWM2NDZlODJmYjcyODZjNzVhOTVkZDczNTAu
LjFiNDBjMWI0ZWYxNzBhYTg1ZjNjMjcwZDBmN2E0Yzg2YmM3YWE5YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCkBA
IC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggYzM4ODRmOWFjODVjYTExMjlmMzYxN2I4YzQ5M2RiZmVjMzIzNDMxNy4uNzYwNGE5MTk1
MTliODRjMDcxYTFkMDRhYmQyZGNkOTk0ZTBiYWQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
dXNlIG9mIEFub255bW91c1Nsb3RDb3VudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmg6CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Y3JlYXRlU3RydWN0dXJl
KToKKwogMjAxMS0wOS0wOSAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQ
YWdlLntofGNwcH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCmluZGV4IGRjNWJlN2M3OThhYTMwNmNmMWVhZDBhNTRk
MmNhMTRhNzRkM2NhMDQuLjkyOTkwMWI5YTVlZmEzMDE5NWY4NDQxMmFjYzY3OTJhYTMwYTE2Nzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBNZXRob2QuaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgdmlydHVhbCBKU0M6OkNhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQzo6Q2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IGI2ZWRmYTVhNzY1
MDRkYzAxOTllNmZkMGU5ZWFhMWJjNWNmNjA5OWYuLmU2NWM4OWRlNWVjZjBiMjYzMGM4MjMxNDkz
OTA2MmFlNjM2MmVmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRl
OgogICAgIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHZpcnR1
YWwgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106961</attachid>
            <date>2011-09-09 21:54:56 -0700</date>
            <delta_ts>2011-09-09 22:33:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67881-20110909215454.patch</filename>
            <type>text/plain</type>
            <size>142179</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGE2ZjFiY2Q0ZWMxODI2ZmQ2NTc2NmZk
OWE0ODljMTM4ZTNhOTJjMmEuLjcyMGZkZmM0MWQxNzk3Mjk4MmNjOWQ1NTUxNzgzOTA1NTg0OWFj
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggMzk2OTA0ODQ3MGIxZDFlMDBjN2ZmNjMzNjk5MmZj
ZmMxNjQwNjMzZS4uMTNlN2UwMDlkYmFlNjVkNDQ1OTcwZDJmZjhhMGM5MGM2ODY5NTJjMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01
MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAvLyByZWZhY3RvciB0aGUgY29kZSBzbyB0aGlzIG92
ZXJyaWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCA2ZmRkZmZiZTNjNjNiZDU0NWM2NWJiZGRjM2UxMDdjMDRmYzA5YmY3Li5jMGQx
NjEwZmY2MDdjZWFkYzQ0OGE0NjRmYjZiMmI5YWMwMWFiYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8p
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IFBhcmVudDo6QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICB9CiAgICAgCiAg
ICAgSlNWYWx1ZSBnZXRQcml2YXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggN2U2NGEzNmMwYjdmMTkxZjI2
MGQzNjQ3MGM0ZTBlNmE5OTRmMGExNy4uY2RlOWVlMWFmOTAxODIxMjBmNjEzMDY0ODYyNTdjNzIw
MDdjOTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY3IEBACisyMDEx
LTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFu
b255bW91cyBzbG90cywgZXNzZW50aWFsbHkgYSBtZWNoYW5pY2FsIGNoYW5nZQorICAgICAgICBp
biBKYXZhU2NyaXB0Q29yZQorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZSk6CisgICAgICAgICogaGVhcC9NYXJrU3Rh
Y2suaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1
bWVudHM6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAgKEpTQzo6Qm9v
bGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJv
dG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAg
KEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OkRhdGVQ
cm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAo
SlNDOjpEYXRlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJh
c2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAg
KEpTQzo6SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNGaW5h
bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0
YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNT
dHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFy
aWFibGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBw
ZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAoSlNDOjpNYXRo
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9OdW1iZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6TnVtYmVyT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6Ok51bWJlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
T2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJlZ0V4
cDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmg6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5O
b2RlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90
eXBlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAoSlND
OjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24pOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6dG9EaWN0aW9uYXJ5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
cHJldmVudEV4dGVuc2lvbnNUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
bGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRk
UHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwdXRTcGVjaWZpY1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNo
ZWNrQ29uc2lzdGVuY3kpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm9w
ZXJ0eVN0b3JhZ2VTaXplKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hh
aW46OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggODNjZTg1MDY4YTZmZjhl
ZGJhNDhiZmFjOTg5OGQwNDE5MjU5YmZmNC4uNDViZDY5ZDMzMzE5NTZkZmU1MjE3ZjI2NjhkN2Vh
ZjY5ZTQ3ZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBA
IC0zMzgsNiArMzM4LDcgQEAgX19aTjNKU0M4ZXZhbHVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0
U2NvcGVDaGFpbk5vZGVFUktOU18xMFNvdXJjZUNvZGVFTlNfN0pTVmEKIF9fWk4zSlNDOGlzWm9t
YmllRVBLTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOUNvZGVCbG9ja0QxRXYKIF9fWk4zSlNDOUNvZGVC
bG9ja0QyRXYKK19fWk4zSlNDOU1hcmtTdGFjazEzdmFsaWRhdGVWYWx1ZUVOU183SlNWYWx1ZUUK
IF9fWk4zSlNDOVN0cnVjdHVyZTIxYWRkUHJvcGVydHlUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFs
RGF0YUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1
Y3R1cmUyMm1hdGVyaWFsaXplUHJvcGVydHlNYXBFUk5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNK
U0M5U3RydWN0dXJlMjVjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0
YUVQUzBfTlNfN0pTVmFsdWVFCkBAIC0zNDcsNyArMzQ4LDcgQEAgX19aTjNKU0M5U3RydWN0dXJl
MjhhZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEw
SWRlbnQKIF9fWk4zSlNDOVN0cnVjdHVyZTNnZXRFUk5TXzEySlNHbG9iYWxEYXRhRVBOM1dURjEw
U3RyaW5nSW1wbEVSalJQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOVN0cnVjdHVyZTQwYWRkUHJvcGVy
dHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUVQUzBfUktOU18xMElkZW50aWZpZXJFalBO
U182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmU2c19pbmZvRQotX19aTjNKU0M5U3RydWN0
dXJlQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RU5TXzdKU1ZhbHVl
RVJLTlNfOFR5cGVJbmZvRWpQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzlTdHJ1Y3R1cmVDMUVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTlNfN0pTVmFsdWVFUktOU184
VHlwZUluZm9FUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0M5U3RydWN0dXJlRDFFdgogX19aTjNK
U0M5Y29uc3RydWN0RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzEzQ29uc3RydWN0VHlw
ZUVSS05TXzEzQ29uc3RydWN0RGF0YUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0NlcUVSS05TXzdV
U3RyaW5nRVBLYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZgppbmRleCA1YjM4MDZhMmUyM2U1YjVlNGM4MjAyNDJhNzA2ZjZjNjNiMjRjMGVl
Li42NGE0YzA4NmYwNjkwNjBiNTMzNWM0YTU0MDQ0YTllNWI3YWVlZjkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTgsNyAr
MTgsNyBAQCBFWFBPUlRTCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFs
T2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoKICAgICA/PzBTSEExQFdURkBA
UUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBB
VlN0cnVjdHVyZUAxQEBaCi0gICA/PzBTdHJ1Y3R1cmVASlNDQEBBQUVAQUFWSlNHbG9iYWxEYXRh
QDFAUEFWSlNHbG9iYWxPYmplY3RAMUBWSlNWYWx1ZUAxQEFCVlR5cGVJbmZvQDFASVBCVUNsYXNz
SW5mb0AxQEBaCisgICAgPz8wU3RydWN0dXJlQEpTQ0BAQUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBB
VkpTR2xvYmFsT2JqZWN0QDFAVkpTVmFsdWVAMUBBQlZUeXBlSW5mb0AxQFBCVUNsYXNzSW5mb0Ax
QEBaCiAgICAgPz8wVGhyZWFkQ29uZGl0aW9uQFdURkBAUUFFQFhaCiAgICAgPz8wVVN0cmluZ0BK
U0NAQFFBRUBQQkRAWgogICAgID8/MFVTdHJpbmdASlNDQEBRQUVAUEJESUBaCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXgg
NDRiNjI2NzIyN2Q3YmY0NTRhZjhmMGZhMWI2NTEyOTg5ZjgzYTBiYy4uY2NkYmRlOGY2Y2I0MGFi
NzE5ZDU0ODZhMGE0ODU0ZTcwOGZhOWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNTYsNyArNTYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCmluZGV4IDdhMDRlMDYwNzgxOTRiNjEyY2EyYzEzMGYz
YzczOTg3NTU2NTA1YzkuLmZkNjY4YmQ5ZWRiNjk4MTFjYmEzOTdlYTc4ZGNiNzEyOTVkYzUyOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcApAQCAtMTc0LDYgKzE3
NCwxMCBAQCB2b2lkIE1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZShKU1ZhbHVlIHZhbHVlKQogICAg
IGlmIChjZWxsLT5zdHJ1Y3R1cmUoKS0+c3RydWN0dXJlKCktPkpTQ2VsbDo6Y2xhc3NJbmZvKCkg
IT0gY2VsbC0+c3RydWN0dXJlKCktPkpTQ2VsbDo6Y2xhc3NJbmZvKCkpCiAgICAgICAgIENSQVNI
KCk7CiB9CisjZWxzZQordm9pZCBNYXJrU3RhY2s6OnZhbGlkYXRlVmFsdWUoSlNWYWx1ZSkKK3sK
K30gCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtTdGFjay5oCmluZGV4IGUxYzI0OWEyMGQ0YThmY2MyNTA4ZDkyMzg2ZjI5YTY4NmI2ZTc4
MWEuLjg0MjdiNzM3ZDI4OWU4NzliZDk4ODE2YmM1MWRiNGIxMzEwNTc1ODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCkBAIC0xMTgsOCArMTE4LDggQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgcHJvdGVjdGVkOgogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQogICAgICAg
ICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVNldChKU1ZhbHVlKiwgc2l6ZV90KTsKLSAgICAgICAgc3Rh
dGljIHZvaWQgdmFsaWRhdGVWYWx1ZShKU1ZhbHVlKTsKICNlbmRpZgorICAgICAgICBzdGF0aWMg
dm9pZCB2YWxpZGF0ZVZhbHVlKEpTVmFsdWUpOwogCiAgICAgICAgIHZvaWQgYXBwZW5kKEpTVmFs
dWUqKTsKICAgICAgICAgdm9pZCBhcHBlbmQoSlNWYWx1ZSosIHNpemVfdCBjb3VudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDAwNTE3NDIxMzc3MTll
NmIxNzM0YWVlOWYzODI5YWQzN2Y2ZjNiMDUuLjU2MTEzZGZhNjFkMDkyMjVkMWNiYzE5YzM5Y2Yz
MmExNDMyM2I2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
CkBAIC0xMTMsNyArMTEzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7IAot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAg
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25z
dHJ1Y3Rvci5oCmluZGV4IDkzNDc1MjIxYmI0YTViN2MwNWIwYzE0ZDE0NTFhMzkzZjVhNDgzNmMu
LmMyYzcxOThkNjZjZjJmNTY5Yjk4NjU3NjM1MTg4NWM2YTNjNWNmZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTQwLDcgKzQw
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNDJm
NDFhNjMxZDQ5Y2YzZGNlOWNhOGZkN2U2YjZkYThkNTY0MzYwNS4uYzc2NTVkMzdlOWE4MTU2ZTJj
ZDc4M2RmOTlhN2FlNmFkNjJmMTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTIzLDcgKzEyMyw2IEBAIHZvaWQgQXJyYXlQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7
CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgQXJy
YXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggNzVlNmU4MGJhNzJm
N2ExYWYyYTFlODJjOGMxNzdiNWU4ZmE4ZjFmNi4uNDFmZjU5NGI3YmRhNWE5OGRjMzg3MWFmMmQ4
NjI3MTQ1ZWFjMGVkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oCkBAIC00NywxMyArNDcsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqKTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENv
dW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmpl
Y3QuaAppbmRleCBjZWQxY2ViMzhhNWYxNTlmYTkzODI5NDQ4OTM4MGM3MjlhOGY5MmE3Li4wMDBk
MTk3YmYxZDAxMzkzZmQyMzk5YTBiZDdiOTRhNWE3YzU1Y2FhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCA3MWRiOWM0NDFl
ZTVlMjliOWE4ZjFjZTQ5ODU3Y2Y2YWI5YTRlZWE3Li5hYzdhNmU5NDljMDcxN2NjOTk3MTIyN2E0
YThiZDY2NmY3NDcwMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNTUsMTMgKzU1LDEyIEBAIEJvb2xlYW5Qcm90b3R5
cGU6OkJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0CiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAot
dm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogewogICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1
ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihmYWxzZSkpOwogCiAgICAgQVNTRVJUKGlu
aGVyaXRzKCZzX2luZm8pKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBCb29sZWFuUHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAppbmRleCBiNzM3ZGZmNzI4ODU5NmZlYmJj
YzhhYWQxYjZmOGRlMTJmNmNhM2VjLi4yYTZjODFmYTNkNTMwZDYwYjgyZTQ1N2U4OTgyOGVhOTg3
OGZmMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5oCkBAIC0zOCwxMyArMzgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQm9vbGVhbk9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90
Q291bnQgPSBCb29sZWFuT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuaAppbmRleCA5MzZhZmMxZjUxNWQxZWY1YmE5MTRmMTIwNzUwNzRhOGQ3ZGRk
OWE4Li41ZmE1MWRmOTU5OWVkM2UxNDZiNmI4M2NhOGIwMmQ5MjEwMjg1MWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggYmQzNmViNzMz
YWVlZGVhYmIwM2I0MDkzOWVmMDJmNTgzZmJiY2ZlMy4uMTIxMzBhNDQzYTI0YmZlYjg0YmY2YTNi
NThhOTE2MDEyZWY4MzJkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUluc3RhbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAK
ICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJv
dG90eXBlLmNwcAppbmRleCA3NTBkZGY5NWExYjQ4YWE0ZTRkNzc5ODZjNTQ1YzY4NDU3YjM2MjBj
Li43ODM4NTg1OGRiMGU2MjdjOGM3YjY0NTA1NTI0MjU4YzJjMDc0MzkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtNDM2LDEzICs0
MzYsMTIgQEAgRGF0ZVByb3RvdHlwZTo6RGF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnUKICAgICBmaW5pc2hDcmVhdGlvbihleGVj
LCBnbG9iYWxPYmplY3QpOwogfQogCi12b2lkIERhdGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRGF0
ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCopCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdp
bGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIERhdGVDb25zdHJ1Y3RvciBoYXMgYmVlbiBidWlsdC4K
LSAgICBwdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVj
dCk7CiB9CiAKIGJvb2wgRGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5k
ZXggMTA2OTA4NTI4MmFlMjVkNWFmY2M4OWI5YWM5MjMxNzMxM2UwMjI5Yy4uY2RhNmI3YWZhOTcx
NTU4MDMxMWY0MGFiZjk0M2Q1ZmQyNDMwYTQwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtNDUsMTUgKzQ1LDEyIEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IERh
dGVJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7Ci0KLSAgICAgICAgQ09NUElMRV9BU1NFUlQoIURh
dGVJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50LCBEYXRlUHJvdG90eXBlX3N0b21wc19vbl95
b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255
bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5kZXggNWI4Zjk1YTVj
ZTlkMzIyODU2ZmFhZTk5YjJkZTA4NzhjMTlkZDkxMy4uMzlkNmMyMmYzYTliNGIxMWVmMjg3NjRl
MGQwM2Q4ZTg5Nzc1Zjg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5k
ZXggMmE5YjlhOWIwNDBhNTQ1Mjg4NWQ4NDE1ZWQwMWEyZWMxYWRjNjMwMS4uMmIyZjAyY2Y2ZDg3
OTJlZjQ0ZDVmYzlmOWY0Zjc0OGVjZjViMDU4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNTUsMTIgKzU1LDExIEBAIEVycm9y
UHJvdG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogfQogCi12b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEVycm9yUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikK
IHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksICIiKTsKICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhl
YywgIkVycm9yIiksIERvbnRFbnVtKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBFcnJvclByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAppbmRleCA5MzQ4NGMyNzQ2NWU0ZDkxNTU0
OWYxNWUxMDg3M2ZlYzU5OGRkYWMwLi40MjVkNjZiY2UzZWI2YjJmYjEwNWIyOGZjMWM3NDRhZjNi
YWI0Yzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90
eXBlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBw
cm90ZWN0ZWQ6CkBAIC01MCw3ICs1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBFcnJvckluc3RhbmNlOjpBbm9u
eW1vdXNTbG90Q291bnQgKyAxOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmgKaW5kZXggMzllYmUxNjdkZTAwNWY1Nzk3ZjdmOTA1YWZhOTA4NmMxNDgxNTFiZC4u
YjE3MjRkMDM0NjYzYmYzMTEzN2QwYThlYWMxMjZhODhlOTNkMTEyZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAtNzAsNyArNzAs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
fQogCiAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAg
LTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXgg
NmJmNjQyNWMzMWIyY2U5NWMzN2M4NTFlODZhOTYxODg5NGY1MDY5Yy4uNTM0MTUzYWU4NDk0Y2Rl
MTk5ZWFiMzAwYWYzNWQ3NDgzYzRmZDFiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuaApAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBtX251bVBhcmFtZXRlcnNGb3JDYWxsID09IE5VTV9QQVJBTUVURVJTX0lT
X0hPU1Q7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3Vu
ZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IH0KICAgICAgICAgCiAgICAgICAgIHN0
YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCkBAIC0xOTgsNyArMTk4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24oKSB7IHJldHVybiBt
X2Z1bmN0aW9uOyB9CiAKLSAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oTGVhZlR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhMZWFmVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CiAKQEAgLTMzNCw3ICszMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNl
bmRpZgogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywg
VHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAg
LTM5NSw3ICszOTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNTUxLDcgKzU1MSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBmcm9tR2xv
YmFsQ29kZShjb25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlKiwgRGVidWdnZXIqLCBjb25zdCBT
b3VyY2VDb2RlJiwgSlNPYmplY3QqKiBleGNlcHRpb24pOwogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IDEwZDFhMTc2ZTIyY2JjMmEzOGJlNDRj
MzY5NjE1ZWE4NDA5NWVhMGYuLjlhZDcwZjcwMTU2MmMyZDk1N2Q3ZGJlOTgzZDAwYjBmNTZmOTM5
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90
b3R5cGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAg
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApp
bmRleCAyMTExYTVhNWY5YmYyYmNlM2QzYWVlZGUwMTU3ZmUzYjQxYjdkYTUwLi4yNWEzNjkyNDI2
YjMwODg0MWU4ZWUyNzYzMGI0ZTdmMzIxYzJiZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCBzZXRTZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09i
amVjdCogc2V0dGVyKSB7IG1fc2V0dGVyLnNldChnbG9iYWxEYXRhLCB0aGlzLCBzZXR0ZXIpOyB9
CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRlclNldHRlclR5
cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0
YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDIzZGY2ZDM0NmVhN2RmODE0YTQ5NDcw
Yzc5YmFkYWRkYmQ3ZjFlZjIuLjBmNjE1OWIzNjRhZjM5NzIxNGJjYTNiYjhkZWYxMGVhNTE5ODlk
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdy
YXBwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVy
LmgKaW5kZXggNmMwZDMzZDM3YjA5ZTY2MDdmZDJjZGJhZjhlMTFiYzI1MTY1Y2YyMS4uYjI3YjJl
NTY1MmIyMTAwZTkxNjM5MWE0NDRjNWM3MWUwMTllMjA2OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCkBAIC00MSw3ICs0MSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA3MDFlMjE4ZWFhZDhlYjA2MzRiMDVl
OTcyYjExMmM0MjQwNzgyMDViLi5kODYzNTkzYjMyYjE4MDRiNjE2ZTdiYTViYzhiZjFjYzVhNmE1
ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApA
QCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRp
YyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggMzU0NjU5YTM2OTM1YjZmZTZmOTNiY2RlNDRl
MWM4OTkwZWMwMTI1OS4uNTY2MjIyNWU1N2NkMTk3NTNjZDI5NDZlMWI2MmY1NzI2YzA2ZGI0NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMTUxLDcgKzE1MSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaW5saW5lIHZv
aWQgdmlzaXRDaGlsZHJlbkRpcmVjdChTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDQzZmQyMjk5ZGU4MWNhZDdmMGU4
MTY2MDNmYzQ2YjI5ODZlYTQ5NTEuLmRhYzNkOTRkMjg5NzZjNDlhZGRkODA5NGVmMGRkMzQzY2Ew
OTE5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgSlNCeXRlQXJyYXk6On5KU0J5dGVBcnJheSgpCiAKIFN0cnVj
dHVyZSogSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25z
dCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7Cisg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGNsYXNzSW5mbyk7
CiB9CiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCBlMTA2NDQ2NmYwNzQ4MDUz
Y2Q5MGJmNGQ5OTE0ODQwMWMxMjE1ZDQwLi41YjNiNzZlMGI3YjMzZTgwYmVhMGFhMjFkNzgzNjcx
YzZkODAzMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTQ1
LDcgKzE0NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlmCiAgICAgICAgIAogICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9
IDA7CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBDcmVhdGlu
Z0Vhcmx5Q2VsbFRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKaW5kZXggMWRiM2M4MGRiNmM0MDQyYzEyYWJhZDI3MzI1YmFjZTVhY2YxOWFmYy4uYjE5MjZh
NGIzOGZlM2ViZTllZDIxMTEzZDJjZjI1NDVkMzg1YzQzNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTE5LDcgKzExOSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkgCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOwot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAg
ICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBkMGE4MDJlZGUwNjZlNjhmOGVm
NjFhMjE5NDVhZWE0Y2U0ODE3NGM4Li42MGE0NWU2M2NkZTM5NzAxMjk4ZjAwNmE3ZTFiYWUzMWM1
M2EwZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKQEAgLTE2Nyw3ICsxNjcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAg
ICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgICAgICBz
dHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHRoaXMpOwotICAgICAgICAg
ICAgQ09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAx
LCBKU0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1
dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzVmFsdWUpOwog
ICAgICAgICB9CkBAIC0yNzQsNyArMjczLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAg
IH0KIAogICAgICAgICB2b2lkIHJlZ2lzdGVyV2Vha01hcChPcGFxdWVKU1dlYWtPYmplY3RNYXAq
IG1hcCkKQEAgLTI5NCw3ICsyOTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZG91Ymxl
IHdlYWtSYW5kb21OdW1iZXIoKSB7IHJldHVybiBtX3dlYWtSYW5kb20uZ2V0KCk7IH0KICAgICBw
cm90ZWN0ZWQ6CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RD
b3VudCA9IEpTVmFyaWFibGVPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7CiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICAgICAgc3Ry
dWN0IEdsb2JhbFByb3BlcnR5SW5mbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggN2I2OGI1MjJjY2Y3NjJkMWQxMzVjYzZjMTc0NWJiOWQz
MzhjNjIxMC4uMjFmZTQyOTE2YmFhNjRlMjIwMzFhMzU1ZTRhYWVkMmE5YWU0ODkxYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNTUsNyAr
NTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IDgyYTMyZjhlYzU3ZmQ0
Yzc5Mzk5ZWIxODQxYWMxOTBhNmRkYzc0YjguLmJmMWJhOGMwMjg2ZjFjYjVkMmUxMmJkOWNhNzc5
ZWM2ODI2YzUyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYmM0MzJkM2FjOGYyOTI2ZDk1NWRj
NmVjYzY5MjFmNThiNThkYzQwZi4uZTNmYjc2Y2ZlYWIyZTVlYmY4YWZmOTJiYzk0MDViYzMwOWU0
NDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0yMzEs
MjIgKzIzMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZs
YXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICB9CiAK
LSAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwotICAgICAg
ICAgICAgbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpLT5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgdmFs
dWUpOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgY2xlYXJBbm9ueW1vdXNWYWx1ZSh1bnNpZ25l
ZCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1
cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKLSAgICAgICAgICAgIGxvY2F0aW9uRm9yT2Zmc2V0
KGluZGV4KS0+Y2xlYXIoKTsKLSAgICAgICAgfQotICAgICAgICBKU1ZhbHVlIGdldEFub255bW91
c1ZhbHVlKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NF
UlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwotICAgICAgICAg
ICAgcmV0dXJuIGxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KS0+Z2V0KCk7Ci0gICAgICAgIH0KLQog
ICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3QKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5nbG9iYWxPYmplY3QoKSk7CkBAIC0yNzQs
NyArMjU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTM1MSw3ICszMzUsNyBAQCBDT01Q
SUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25G
aW5hbE9iamVjdF9pbmxpbmVTdAogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtMzk4LDcg
KzM4Miw3IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBh
Y2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAKICAgICAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IGNjMTIyYmQ3ZGVjYzgzNmVhOWYzZDE3MGQ3ZjM4YjAx
YzI3NWNjYjIuLjRjN2E2ZWU5Njc0NThlOTE0YTQ3MzBmZGU2NGEzYWE1ZTQ1MTA5NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
SXRlcmF0b3IuY3BwCkBAIC01NCw5ICs1NCw4IEBAIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0CiAg
ICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhleGVjKTsKICAgICBvLT5nZXRQcm9w
ZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwogICAgIHNpemVfdCBudW1DYWNoZWFibGVT
bG90cyA9IDA7Ci0gICAgaWYgKCFvLT5zdHJ1Y3R1cmUoKS0+aGFzTm9uRW51bWVyYWJsZVByb3Bl
cnRpZXMoKSAmJiAhby0+c3RydWN0dXJlKCktPmhhc0Fub255bW91c1Nsb3RzKCkgJiYKLSAgICAg
ICAgIW8tPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgJiYgIW8tPnN0
cnVjdHVyZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpICYmCi0gICAgICAgICFvLT5zdHJ1
Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKCkpCisgICAgaWYg
KCFvLT5zdHJ1Y3R1cmUoKS0+aGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoKSAmJiAhby0+c3Ry
dWN0dXJlKCktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKQorICAgICAgICAmJiAhby0+c3Ry
dWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkgJiYgIW8tPnN0cnVjdHVyZSgpLT50
eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgbnVtQ2FjaGVh
YmxlU2xvdHMgPSBvLT5zdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlU2l6ZSgpOwogICAgIAog
ICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGpzUHJvcGVydHlOYW1lSXRlcmF0b3IgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yPigqZXhlYy0+aGVhcCgpKSkgSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvcihleGVjLCBwcm9wZXJ0eU5hbWVzLmRhdGEoKSwgbnVtQ2FjaGVh
YmxlU2xvdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oCmluZGV4IDZkNWM3NWFhZjE3YmFhZmY4NWEwZmJmNWI2NWEy
NGM1NTZmYTMzZDQuLjJmMmNjYjVjZjMxYWU4MWQ1MGY5MDc0NjMxZWI1YzBhZjFkMGNhOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAog
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW4pLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmluZGV4IDIyNTYz
ODY1MTc0MDU1ZGMzMDlhNTQ4N2FiNmM5MTlkYmQwZGYyYzQuLjFmOGQ4YjhmZWYzZDhiYzNjMWUy
YjViMjAwMTZiMmE1OWY1YzUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNl
IEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZvaWQgcHV0V2l0aEF0
dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggNjM4MjAzMWIyZGI1OTA3YmU5YTMxMDZh
Yjg4OWFhNjE0NzRkMzZiNC4uN2IwZGNlMmY2MmNjNDdjYzVmYjM2NjMyM2ZmY2RkYTg1NjgyYjM4
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC00MzgsNyAr
NDM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJ
bmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90KSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IGQ1N2M2YWMwNGNi
ZTJiMTc3YWY2Mzc5YWU5MmU2NGM3NTg4ZjIzYmYuLmMyNmRjN2ViYTE3ZmU5YmQ0MWZhZTNjYWIw
MTc1OTA2MjhiMDZjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggMTEzNDIzZTE2MzQ3M2U1MjdhMmEzNGY1
NTVlMmY1ZDU4ZmVkODg0NC4uY2Y0NGUwNGU3ODVkMjRlNDlhMGI5YzU1NzJkNWUxNWMyYTdiNDkz
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0
LmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7IAot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRl
eCAxMDFlMjY2N2E1ZTgyNzY4NzM5ODZmZjRkNzExOWNmZTkzOTIzY2M0Li43YzQ3MDcyZjQ1OTAw
MWUzMGNlNmY5ZWExNzk1OWQ1MGFmNTRjOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDZhNDczZGE4YmI4NTZlMDA4
YjcyZTM2ZTE5NGMzOGUyOGUwYzZjZTcuLjFhMGI0ZTA3ODYyYWY3MzJjM2U1Yzg0Zjc3YjJkZTE4
N2Y5MzZiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
YXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSgpIHsgcmV0dXJu
IG1fZXJyb3JTdHJ1Y3R1cmUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmluZGV4IDFlZGQwMTQ3NDJmOWViZWIxZTQ1MmRk
NjRkNDRjMTcwOGE1NThiYWUuLjg0YzRkMWZiNjI5NjgyYTU2NGYxYTFiNmY4MWRkMmVkOTkxNzY3
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICAgICAgeyAK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgZW51
bSB7IE5hTlZhbHVlLCBOZWdJbmZpbml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVlLCBNaW5WYWx1
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRl
eCBlNmNkNGNmMzgxY2M1OTI2NmMwNTU0NWM4YmEyNDQ5MWY1YWZjODY3Li5mMTEzOGRhNzJkNGFl
OGQwMDM3YWJkM2Q0YTliZWYzZjQyZGIyNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJPYmplY3QuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCA5YjU3NjJiOTVlMTA1MDM0OTAzZDU4ZWNl
NGFlMDMyODA4N2NjNjlhLi44NzAxZTkxMTdmYzgxZTlmOTMwZTBjZDgwYjUwYTBhMzQxZmE1YTZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlw
ZS5jcHAKQEAgLTc2LDEzICs3NiwxMiBAQCBOdW1iZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlw
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZmlu
aXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotdm9pZCBOdW1iZXJQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK3ZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCkpOwogICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBqc051bWJlcigwKSk7CiAKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHB1
dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmpl
Y3QpOwogfQogCiBib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qg
JnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlw
ZS5oCmluZGV4IDIyNWI1MTU5NjcwYjBlYjMwNmU5OTYwYzY0YTcwYjNkMjEwZGU4NmEuLjhlMTAw
N2FjYmJjOGJjNmNhNTA1MjQxZGU2NjdmM2NkZTZkNDgwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC0zOCwxMyArMzgsMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgTnVtYmVyT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IE51bWJlck9iamVjdDo6QW5vbnltb3Vz
U2xvdENvdW50ICsgMTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIE51bWJlclByb3RvdHlwZShF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMzhjNDhlODQ5
ZmQzMTk2OWFlOWVlNzI5ZGE4YmVkZTliZmRhMTExNS4uNGMzMjAyODgxYjIwNGNjNDEyOGY4NzQy
OGU0MDdhMTEzYzI5NzBkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNTA4OWE1ZmZkYmY3NzNkMGZmN2U4Njk5
MjEzNWQ1NTVhYTI5NTc2NC4uZGIwMDg5YjdkZDllNWFlZTYyZTQ3NDJlMzA5ZDQwMzYyYWQ5YWY4
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5
cGUuY3BwCkBAIC02OSwxMSArNjksMTAgQEAgT2JqZWN0UHJvdG90eXBlOjpPYmplY3RQcm90b3R5
cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0dWN0dXJlKQogewogfQogCi12b2lkIE9i
amVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqKQogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggMTIwNzQwODk1MjUzN2U2YWU3MTFjMjRh
MTNiZmFhMjljZDcxODNmOS4uNGMxMmRmYjQ2NzkyZGMxYjhlMWVlMTMyMGU4ZDQyNGJhNmI5ZmMx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmgKQEAgLTQwLDEyICs0MCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNOb25GaW5hbE9iamVjdDo6U3RydWN0dXJl
RmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQg
PSBKU05vbkZpbmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAppbmRleCBlOTkwODE0M2UxZTc4MDdkMGVm
YzE4NWU5M2Q0MjYxNmYxMGE4ZjRiLi4wY2Y4MGEwNmUzMmE4MDZjZDRhMzg5NmJkYzFiZjg5NzNj
N2FmMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaApAQCAtNjgsNyAr
NjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksIDAsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhMZWFmVHlwZSwgMCksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXgg
YjViMmIzMDI2NjE2OWU2ODZmNWY3YTJlYTBmNjZhM2Y4MmRkYzk5MC4uNWZhNzYxZWE2YjBhZmE3
NTVkOTg0M2IzM2I2ZDNiNzgyYzYzOGEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXgg
NDlkZGQzN2IzMjM5NzIwYTY2NmQ2MDhiOWVlMjZjZDRkZmNmZjVmOS4uYzlmYjAwYmYwOTA4M2My
ZTkxNTc4NGNhNzNlMjYxNWE0ZTUyZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IGQ0NWIwYTI3YjA2ZDBjNDQxNTYzMjQ2NDg4ZTJj
OGRlNjlmMzY2ZTMuLmMzMmE5YmY4N2VlZjYzNWUwYTg2MmRmZmJkYzM3NTJlZmFlNzdkNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBA
IC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCmluZGV4IDY5YjBi
ZDEyYjA5MzMwMjgzODA3MWU4NTgyMWJiNzg4NTYyNWMyNTMuLmRkNTAwNGI1MDBhODJjYWM0ZWVh
ZjJiYmM1NzViNzhmZDg0N2RmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y29wZUNoYWluLmgKQEAgLTg2LDcgKzg2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZv
aWQgcHJpbnQoKTsKICNlbmRpZgogICAgICAgICAKLSAgICAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUlu
Zm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAgICAgICAgIHZp
cnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyBK
U19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDRiYjc2
YzA2ZDkxYWIxYjQ5OTYwMTY3Mjk3ZTRiZGQ0MzE2MjczMjQuLjRlNjE3NWQxYmE4YTMxODc4MWYx
NDUwYTNlZmNmYjczZmZhZTQyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogICAgIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmgKaW5kZXggOGFiYWQ5ZGVkMWI0NmY2ODQxNTM0MGE3MGUwY2M5ZDlmM2VlMTBkNy4u
ODBlMzcxNjIwOTA1ZTA5OGJjMzFmZWVmMTI3MDdjYzc4Y2UwYjJkNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBAIC00MCw3ICs0
MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCAxOGFmZTcyZGVk
NGQ3OTFmMjY5MTAwYjY0ZmQ2NTIwZmRmYjc1OTRkLi5mZjkxZGIzMjRmOGMwYTg5YzI3YjA4MTIx
ZTgwZDE5Mjg4OTMyMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuaApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
CmluZGV4IGUyMWY5YTEwNjYwOTE2Y2ZlYjVhODEyNjk2NDFhZGYwNTRlZTE1ZTYuLmMwNGVmZGUz
ZTFhZGQyNTdiZjdkYWE5NmIwY2Q2YjE4MTQ0ZTFjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
KSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXgg
NTkwMzkwOWI5NGQyZGU0NTgxYzQ3MzQwYjQwMDJkZjY4ODBhYjNhNC4uYTFjOWFhOWYxY2I2ZTg1
MDE0NTMyODEwYWUyM2MwYzg0YmJhNTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMzcsMTIgKzEzNywxMSBAQCBTdHJp
bmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0
LCBuYW1lQW5kTWVzc2FnZSk7CiB9CiAKLXZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3Ry
aW5nKiBuYW1lQW5kTWVzc2FnZSkKK3ZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIG5hbWVBbmRNZXNz
YWdlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFt
ZUFuZE1lc3NhZ2UpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKLSAgICBwdXRB
bm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiAgICAg
Ly8gVGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIFN0cmluZ0NvbnN0
cnVjdG9yIGhhcyBiZWVuIGJ1aWx0CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigw
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCA2NTFmOWFjM2RkNGY1
N2RhYjcyOGJiMDUyNjFjNTc4OWIxOGM2MWQxLi40OWExZGEyMDhkMWUwYzE4Mjg1NDMyNWI4NDQ0
NGMyMzdiZTgzOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTUzLDggKzUzLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBTdHJp
bmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIENPTVBJTEVfQVNTRVJUKCFTdHJp
bmdPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCwgU3RyaW5nUHJvdG90eXBlX3N0b21wc19vbl95
b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255
bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCAyYmRmNWZkMjljYzQ4
ZGE1MDcxM2FjNjdlNDRiYjYyZjc3ZmM2NmE5Li5lMzVmMGM0ZDQ2ZmFkMjcyYzkzNTc3ZTA0YWZj
OTlmYmI2MGQxYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVtcFN0YXRpc3RpY3Mo
KQogI2VuZGlmCiB9CiAKLVN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNv
bnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25z
dCBDbGFzc0luZm8qIGNsYXNzSW5mbykKK1N0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm8pCiAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1
cmUuZ2V0KCkpCiAgICAgLCBtX3R5cGVJbmZvKHR5cGVJbmZvKQogICAgICwgbV9nbG9iYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2JqZWN0LCBXcml0ZUJhcnJpZXI8SlNHbG9iYWxP
YmplY3Q+OjpNYXlCZU51bGwpCkBAIC0xNzMsNyArMTczLDYgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1YKICAgICAsIG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoZmFsc2UpCiAgICAgLCBt
X2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAgLCBtX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hD
b3VudCgwKQotICAgICwgbV9hbm9ueW1vdXNTbG90Q291bnQoYW5vbnltb3VzU2xvdENvdW50KQog
ICAgICwgbV9wcmV2ZW50RXh0ZW5zaW9ucyhmYWxzZSkKICAgICAsIG1fZGlkVHJhbnNpdGlvbihm
YWxzZSkKIHsKQEAgLTE5NCw3ICsxOTMsNiBAQCBTdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEpCiAgICAgLCBtX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKGZh
bHNlKQogICAgICwgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cygwKQogICAgICwgbV9zcGVjaWZpY0Z1
bmN0aW9uVGhyYXNoQ291bnQoMCkKLSAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50KDApCiAgICAg
LCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKGZhbHNl
KQogewpAQCAtMjEzLDcgKzIxMSw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlKiBwcmV2aW91cykKICAgICAsIG1faGFzTm9u
RW51bWVyYWJsZVByb3BlcnRpZXMocHJldmlvdXMtPm1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRp
ZXMpCiAgICAgLCBtX2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAgLCBtX3NwZWNpZmljRnVu
Y3Rpb25UaHJhc2hDb3VudChwcmV2aW91cy0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQp
Ci0gICAgLCBtX2Fub255bW91c1Nsb3RDb3VudChwcmV2aW91cy0+YW5vbnltb3VzU2xvdENvdW50
KCkpCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKHByZXZpb3VzLT5tX3ByZXZlbnRFeHRlbnNp
b25zKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKHRydWUpCiB7CkBAIC0yNTMsNyArMjUwLDcgQEAg
dm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXAoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhKQogCiAgICAgZm9yIChwdHJkaWZmX3QgaSA9IHN0cnVjdHVyZXMuc2l6ZSgpIC0gMjsg
aSA+PSAwOyAtLWkpIHsKICAgICAgICAgc3RydWN0dXJlID0gc3RydWN0dXJlc1tpXTsKLSAgICAg
ICAgUHJvcGVydHlNYXBFbnRyeSBlbnRyeShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUtPm1f
bmFtZUluUHJldmlvdXMuZ2V0KCksIG1fYW5vbnltb3VzU2xvdENvdW50ICsgc3RydWN0dXJlLT5t
X29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3VzLCBzdHJ1Y3R1cmUtPm1f
c3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpOworICAgICAgICBQcm9wZXJ0eU1hcEVudHJ5
IGVudHJ5KGdsb2JhbERhdGEsIHRoaXMsIHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQo
KSwgc3RydWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3Vz
LCBzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpOwogICAgICAgICBt
X3Byb3BlcnR5VGFibGUtPmFkZChlbnRyeSk7CiAgICAgfQogfQpAQCAtMjkwLDkgKzI4Nyw3IEBA
IFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3Ry
dWN0dXJlKFN0cnVjdHVyZSogc3RydWN0CiAgICAgICAgIGlmIChzcGVjaWZpY1ZhbHVlSW5QcmV2
aW91cyAmJiBzcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyAhPSBzcGVjaWZpY1ZhbHVlKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIEFTU0VSVChleGlzdGluZ1RyYW5zaXRpb24tPm1fb2Zm
c2V0ICE9IG5vT2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ID0gZXhpc3RpbmdUcmFuc2l0aW9uLT5t
X29mZnNldCArIGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQ7Ci0gICAg
ICAgIEFTU0VSVChvZmZzZXQgPj0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCk7Ci0g
ICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50ID09IGV4aXN0aW5n
VHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQpOworICAgICAgICBvZmZzZXQgPSBleGlz
dGluZ1RyYW5zaXRpb24tPm1fb2Zmc2V0OwogICAgICAgICByZXR1cm4gZXhpc3RpbmdUcmFuc2l0
aW9uOwogICAgIH0KIApAQCAtMzIyLDggKzMxNyw2IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjph
ZGRQcm9wZXJ0eVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
CiAgICAgICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IHRvQ2FjaGVhYmxlRGljdGlvbmFyeVRy
YW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKICAgICAgICAgQVNTRVJUKHN0cnVjdHVy
ZSAhPSB0cmFuc2l0aW9uKTsKICAgICAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+cHV0U3BlY2lm
aWNWYWx1ZShnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljVmFs
dWUpOwotICAgICAgICBBU1NFUlQob2Zmc2V0ID49IHN0cnVjdHVyZS0+bV9hbm9ueW1vdXNTbG90
Q291bnQpOwotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9
PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIGlmICh0cmFuc2l0
aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgPiB0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSgpKQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+Z3Jvd1Byb3BlcnR5U3RvcmFnZUNh
cGFjaXR5KCk7CiAgICAgICAgIHJldHVybiB0cmFuc2l0aW9uOwpAQCAtMzUwLDEzICszNDMsMTAg
QEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSoKICAgICB9CiAKICAgICBvZmZzZXQgPSB0cmFuc2l0
aW9uLT5wdXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRl
cywgc3BlY2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1Y3R1cmUtPm1fYW5v
bnltb3VzU2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RD
b3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgaWYgKHRyYW5z
aXRpb24tPnByb3BlcnR5U3RvcmFnZVNpemUoKSA+IHRyYW5zaXRpb24tPnByb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5KCkpCiAgICAgICAgIHRyYW5zaXRpb24tPmdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSgpOwogCi0gICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBvZmZzZXQgLSBzdHJ1Y3R1cmUt
Pm1fYW5vbnltb3VzU2xvdENvdW50OwotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Ns
b3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKyAgICB0cmFu
c2l0aW9uLT5tX29mZnNldCA9IG9mZnNldDsKICAgICBzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblRh
YmxlLmFkZChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICByZXR1cm4gdHJhbnNpdGlvbjsK
IH0KQEAgLTM2OCw4ICszNTgsNiBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVy
dHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dQogICAgIFN0cnVj
dHVyZSogdHJhbnNpdGlvbiA9IHRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5VHJhbnNpdGlvbihnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpOwogCiAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+cmVtb3ZlKHBy
b3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1Y3R1cmUtPm1fYW5vbnltb3Vz
U2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9
PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAKICAgICByZXR1cm4gdHJhbnNp
dGlvbjsKIH0KQEAgLTM4NSw4ICszNzMsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y2hhbmdl
UHJvdG90eXBlVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdAogICAg
IHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEp
OwogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3Bl
cnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bp
bm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFu
b255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsK
KwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC00MDksOCArMzk2LDcgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnUKICAgICAgICAgYm9vbCByZW1vdmVkID0gdHJhbnNpdGlvbi0+ZGVz
cGVjaWZ5RnVuY3Rpb24oZ2xvYmFsRGF0YSwgcmVwbGFjZUZ1bmN0aW9uKTsKICAgICAgICAgQVNT
RVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVkKTsKICAgICB9Ci0gICAgCi0gICAgQVNTRVJUKHN0
cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xv
dENvdW50KCkpOworCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CiAKQEAgLTQyMyw4ICs0MDks
NyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbihKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZQogICAgIHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQ
cm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwogICAgIHRyYW5zaXRpb24tPm1fcHJv
cGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJh
bnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVl
OwotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRy
YW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKwogICAgIHJldHVybiB0cmFuc2l0aW9u
OwogfQogCkBAIC00MzgsOCArNDIzLDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnRvRGljdGlv
bmFyeVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUKICAgICB0
cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxl
KGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwogICAgIHRyYW5zaXRpb24tPm1faXNQaW5uZWRQcm9w
ZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICB0cmFuc2l0aW9uLT5tX2RpY3Rpb25hcnlLaW5kID0ga2lu
ZDsKLSAgICAKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQoKSA9PSB0
cmFuc2l0aW9uLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CisKICAgICByZXR1cm4gdHJhbnNpdGlv
bjsKIH0KIApAQCAtNDkzLDcgKzQ3Nyw2IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpwcmV2ZW50
RXh0ZW5zaW9uc1RyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1CiAgICAg
dHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwogICAgIHRyYW5zaXRp
b24tPm1fcHJldmVudEV4dGVuc2lvbnMgPSB0cnVlOwogCi0gICAgQVNTRVJUKHN0cnVjdHVyZS0+
YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkp
OwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC01MzksNyArNTIyLDYgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNPYmoKICAgICBpZiAoaXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgewog
ICAgICAgICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxlKTsKIAotICAgICAgICB1bnNpZ25lZCBhbm9u
eW1vdXNTbG90Q291bnQgPSBtX2Fub255bW91c1Nsb3RDb3VudDsKICAgICAgICAgc2l6ZV90IHBy
b3BlcnR5Q291bnQgPSBtX3Byb3BlcnR5VGFibGUtPnNpemUoKTsKICAgICAgICAgVmVjdG9yPEpT
VmFsdWU+IHZhbHVlcyhwcm9wZXJ0eUNvdW50KTsKIApAQCAtNTQ4LDEyICs1MzAsMTIgQEAgU3Ry
dWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNPYmoKICAgICAgICAgZm9yIChQcm9wZXJ0eVRhYmxlOjppdGVyYXRv
ciBpdGVyID0gbV9wcm9wZXJ0eVRhYmxlLT5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyLCAr
K2kpIHsKICAgICAgICAgICAgIHZhbHVlc1tpXSA9IG9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KGl0
ZXItPm9mZnNldCk7CiAgICAgICAgICAgICAvLyBVcGRhdGUgcHJvcGVydHkgdGFibGUgdG8gaGF2
ZSB0aGUgbmV3IHByb3BlcnR5IG9mZnNldHMKLSAgICAgICAgICAgIGl0ZXItPm9mZnNldCA9IGFu
b255bW91c1Nsb3RDb3VudCArIGk7CisgICAgICAgICAgICBpdGVyLT5vZmZzZXQgPSBpOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCBwcm9wZXJ0eSB2
YWx1ZXMgaW50byB0aGVpciBmaW5hbCBsb2NhdGlvbnMKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7IGkrKykKLSAgICAgICAgICAgIG9iamVjdC0+cHV0RGly
ZWN0T2Zmc2V0KGdsb2JhbERhdGEsIGFub255bW91c1Nsb3RDb3VudCArIGksIHZhbHVlc1tpXSk7
CisgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBpLCB2YWx1
ZXNbaV0pOwogCiAgICAgICAgIG1fcHJvcGVydHlUYWJsZS0+Y2xlYXJEZWxldGVkT2Zmc2V0cygp
OwogICAgIH0KQEAgLTU3NCw3ICs1NTYsNiBAQCBzaXplX3QgU3RydWN0dXJlOjphZGRQcm9wZXJ0
eVdpdGhvdXRUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSQogICAg
IG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKIAogICAgIHNpemVfdCBvZmZzZXQgPSBw
dXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3Bl
Y2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7
CiAgICAgaWYgKHByb3BlcnR5U3RvcmFnZVNpemUoKSA+IHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCkpCiAgICAgICAgIGdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwogICAgIHJldHVybiBv
ZmZzZXQ7CkBAIC01ODksNyArNTcwLDYgQEAgc2l6ZV90IFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVy
dHlXaXRob3V0VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnMKIAogICAg
IG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gcmVt
b3ZlKHByb3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RD
b3VudCk7CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIApAQCAtNjM3LDcgKzYxNyw2IEBAIHNpemVf
dCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cmluZ0ltcGwqIHBy
b3BlcnR5TmFtZSwgdW5zaWduCiAKICAgICBhdHRyaWJ1dGVzID0gZW50cnktPmF0dHJpYnV0ZXM7
CiAgICAgc3BlY2lmaWNWYWx1ZSA9IGVudHJ5LT5zcGVjaWZpY1ZhbHVlLmdldCgpOwotICAgIEFT
U0VSVChlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsKICAgICByZXR1cm4g
ZW50cnktPm9mZnNldDsKIH0KIApAQCAtNjg3LDggKzY2Niw3IEBAIHNpemVfdCBTdHJ1Y3R1cmU6
OnB1dFNwZWNpZmljVmFsdWUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlm
aWVyJiBwCiAgICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+aGFzRGVsZXRlZE9mZnNldCgpKQogICAg
ICAgICBuZXdPZmZzZXQgPSBtX3Byb3BlcnR5VGFibGUtPmdldERlbGV0ZWRPZmZzZXQoKTsKICAg
ICBlbHNlCi0gICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpICsgbV9h
bm9ueW1vdXNTbG90Q291bnQ7Ci0gICAgQVNTRVJUKG5ld09mZnNldCA+PSBtX2Fub255bW91c1Ns
b3RDb3VudCk7CisgICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpOwog
CiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGQoUHJvcGVydHlNYXBFbnRyeShnbG9iYWxEYXRhLCB0
aGlzLCByZXAsIG5ld09mZnNldCwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSkpOwogCkBAIC03
MTIsNyArNjkwLDYgQEAgc2l6ZV90IFN0cnVjdHVyZTo6cmVtb3ZlKGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAgc2l6ZV90IG9m
ZnNldCA9IHBvc2l0aW9uLmZpcnN0LT5vZmZzZXQ7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fu
b255bW91c1Nsb3RDb3VudCk7CiAKICAgICBtX3Byb3BlcnR5VGFibGUtPnJlbW92ZShwb3NpdGlv
bik7CiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGREZWxldGVkT2Zmc2V0KG9mZnNldCk7CkBAIC04
NDQsNyArODIxLDYgQEAgdm9pZCBTdHJ1Y3R1cmU6OmNoZWNrQ29uc2lzdGVuY3koKQogICAgICAg
ICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSBtX3Byb3BlcnR5VGFibGUtPmVuZCgpOwog
ICAgICAgICBmb3IgKFByb3BlcnR5VGFibGU6Oml0ZXJhdG9yIGl0ZXIgPSBtX3Byb3BlcnR5VGFi
bGUtPmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAgICAgICAgICAgIEFTU0VSVCgh
KGl0ZXItPmF0dHJpYnV0ZXMgJiBEb250RW51bSkpOwotICAgICAgICAgICAgQVNTRVJUKGl0ZXIt
Pm9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMGY0ZjQ4YzgzNDEy
YzEzNTBkMDkzNGMxYjVmZjYzMzc2ODI5NmZjMy4uMzAxYmE1ZjRhYjkwMzUyNDc2ZDQyOTFhNGJl
NDI4OGUxODk3ZGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmgKQEAgLTYyLDExICs2MiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVm
IEpTQ2VsbCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Ns
b3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCisgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8s
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NF
UlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgQVNTRVJUKGNs
YXNzSW5mbyk7Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xvdENvdW50LCBj
bGFzc0luZm8pOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgdHlwZUluZm8sIGNsYXNzSW5mbyk7CiAgICAgICAg
ICAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAg
cmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQpAQCAtMTMzLDcgKzEzMyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ3Jvd1Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CiAg
ICAgICAgIHVuc2lnbmVkIHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkgY29uc3QgeyBBU1NFUlQo
c3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1cm4gbV9wcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eTsgfQotICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eVN0b3JhZ2VTaXplKCkg
Y29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1
cm4gbV9hbm9ueW1vdXNTbG90Q291bnQgKyAobV9wcm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRh
YmxlLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZz
ZXQgKyAxKSk7IH0KKyAgICAgICAgdW5zaWduZWQgcHJvcGVydHlTdG9yYWdlU2l6ZSgpIGNvbnN0
IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsgcmV0dXJuICht
X3Byb3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUtPnByb3BlcnR5U3RvcmFnZVNpemUoKSA6
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29mZnNldCArIDEpKTsgfQogICAgICAgICBib29sIGlz
VXNpbmdJbmxpbmVTdG9yYWdlKCkgY29uc3Q7CiAKICAgICAgICAgc2l6ZV90IGdldChKU0dsb2Jh
bERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpAQCAtMTUwLDkgKzE1MCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHNldEhhc0dldHRlclNldHRlclByb3Bl
cnRpZXMoYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKSB7IG1faGFzR2V0dGVyU2V0dGVy
UHJvcGVydGllcyA9IGhhc0dldHRlclNldHRlclByb3BlcnRpZXM7IH0KIAogICAgICAgICBib29s
IGhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNOb25FbnVt
ZXJhYmxlUHJvcGVydGllczsgfQotCi0gICAgICAgIGJvb2wgaGFzQW5vbnltb3VzU2xvdHMoKSBj
b25zdCB7IHJldHVybiAhIW1fYW5vbnltb3VzU2xvdENvdW50OyB9Ci0gICAgICAgIHVuc2lnbmVk
IGFub255bW91c1Nsb3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYW5vbnltb3VzU2xvdENvdW50
OyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3By
b3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUtPmlzRW1wdHkoKSA6IG1fb2Zmc2V0ID09IG5v
T2Zmc2V0OyB9CiAKQEAgLTE5MSw3ICsxODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
c3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIHVuc2lnbmVkIGFub255bW91c1Nsb3RD
b3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CisgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEm
LCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIGNv
bnN0IENsYXNzSW5mbyopOwogICAgICAgICBTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJik7CiAgICAg
ICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBjb25zdCBTdHJ1Y3R1cmUqKTsKIApAQCAtMjc4
LDEwICsyNzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgbV9hdHRyaWJ1
dGVzSW5QcmV2aW91cyA6IDc7CiAjZW5kaWYKICAgICAgICAgdW5zaWduZWQgbV9zcGVjaWZpY0Z1
bmN0aW9uVGhyYXNoQ291bnQgOiAyOwotICAgICAgICB1bnNpZ25lZCBtX2Fub255bW91c1Nsb3RD
b3VudCA6IDU7CiAgICAgICAgIHVuc2lnbmVkIG1fcHJldmVudEV4dGVuc2lvbnMgOiAxOwogICAg
ICAgICB1bnNpZ25lZCBtX2RpZFRyYW5zaXRpb24gOiAxOwotICAgICAgICAvLyAzIGZyZWUgYml0
cworICAgICAgICAvLyA4IGZyZWUgYml0cwogICAgIH07CiAKICAgICBpbmxpbmUgc2l6ZV90IFN0
cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQpAQCAtMjkyLDcgKzI4OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAgICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5
ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS5pbXBsKCkpLmZpcnN0OwotICAg
ICAgICBBU1NFUlQoIWVudHJ5IHx8IGVudHJ5LT5vZmZzZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291
bnQpOwogICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS0+b2Zmc2V0IDogbm90Rm91bmQ7CiAg
ICAgfQogCkBAIC0zMDQsNyArMjk5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gbm90Rm91bmQ7CiAKICAgICAgICAgUHJvcGVydHlNYXBFbnRyeSogZW50cnkgPSBtX3By
b3BlcnR5VGFibGUtPmZpbmRXaXRoU3RyaW5nKG5hbWUuaW1wbCgpKS5maXJzdDsKLSAgICAgICAg
QVNTRVJUKCFlbnRyeSB8fCBlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsK
ICAgICAgICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IG5vdEZvdW5kOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hh
aW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKaW5k
ZXggYzhlNDJiMjZhNzJjOTZjZDAzYzQ2NjQ2YzYyMDIxNDRiZTUwYjM2Yy4uY2RkNjRlZjZhNjFh
ZTQxNDQwMzNiMDdmYzFlYzE5MjcwMzFhZGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaGVhZCgpIHsgcmV0dXJuIG1f
dmVjdG9yLmdldCgpOyB9CiAgICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYp
OwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxk
cmVuKSwgMCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsgfQogICAgICAgICAKICAgICAgICAgc3Rh
dGljIENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IDE4NGJi
Nzk3MGY0NTRmM2Y2NThlMmYxZGYzZTBkM2YwNzNmMmQ4MzYuLjNkNzFlNTQ2ZWFkODM2YzE2MTM1
YjRmMzFmMjNiNzhiMWM5NDEwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG5l
ZWQgYW4gYW5vbnltb3VzIHNsb3QgY291bnQgYW55bW9yZQorCisgICAgICAgICogVXNlck9iamVj
dEltcC5oOgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAx
MS0wOS0wOSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxs
IGhpZXJhcmNoeSAoNS83KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJP
YmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXgg
MjZjZWVkY2RjMDUzMzNmMmIxMTcwMGNlMjFmNmFlMzdmNzJiNjE5YS4uNDNmZjBkYThkNzU2YWZl
NmZmM2Q3Yzg2MzlhOWQzMTNhYWQwNWJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVj
dEltcC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOGIxOGE5ZDA0OWEzN2Y4YTRiNGZmMjkzMmI2YzIyYjc2ZTViMTUyMC4uMzRkZTQ5
ZTM5ZDEwOWYyOTJlOWFhNzgyMDZiYzdkM2VhODg2MjFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDkwIEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBh
bGwgdXNlIG9mIGFub255bW91cyBzbG90cywgdGhpcyByZXF1aXJlZCBtb2RpZnlpbmcKKyAgICAg
ICAgYmluZGluZ3MgZ2VuZXJhdGlvbiB0byBhZGQgbWVtYmVyIHZhcmlhYmxlcyBmb3IgY2FjaGVk
IGF0dHJpYnV0ZXMsCisgICAgICAgIGFuZCBvdmVycmlkZSB2aXNpdENoaWxkcmVuIHdpdGggdGhl
IG5lY2Vzc2FyeSBsb2dpYyB0byBtYXJrIHRob3NlCisgICAgICAgIG5ldyBtZW1iZXJzLgorCisg
ICAgICAgIEkgYWRkZWQgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cyBmb3IgdGhlc2UgdmFsdWVz
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01Db25z
dHJ1Y3Rvck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6ZGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU01lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNPcHRpb25Db25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRleHRCYXNlOjpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNhY2hlZEF0
dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMik6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9i
alByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmNhY2hlZEF0
dHJpYnV0ZTFBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6
Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1l
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvYy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OkNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVu
dGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9K
YXZhUnVudGltZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVP
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRp
bWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iakNSdW50aW1lT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06
CisgICAgICAgIChPYmpDUnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9i
amNGYWxsYmFja09iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9hcnJheS5oOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgIChKU0M6
OlJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUpOgorCiAyMDExLTA5LTA5ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgTW92ZSBFbGVtZW50LmNvbnRhaW5zIHRvIE5vZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5kZXggYTdhOTA3
ZGY0Y2FiZDczMWRmZjFjYjk1ZDA4ZjVjY2E5ZjNjNzEzOS4uMTllNjQ1ZmJkZmE3OGE0Zjk0ZTBl
ZGQzNGFmNzk1Mjk4NDE5NzJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAg
ICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYzFjODM3ZWUyNzAwMmZi
NDkwNjA5ZGIxMTkzODljMTBiYzgxOWU0OC4uYWM4ZTk4MDhhNDVjYjQyYmZmM2U2MzViYmUyNWZh
N2UzMGFmYTEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
QEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCmluZGV4IDlhODM4YmY5YTgzYzQ5YzFjNDFlM2NiMjc3NTEwOGFjNDk3ZjAwODEuLjAx
NGI1NjliYTJiMzFlOTUzOWQ3NmU1MzViMDVlOTc2ZjQzYmJlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNzIsNyArNzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggZjc3MTgwODdjZTU4MzBhNmU1YzY2
NzE5YTU4NzgwYmEzNmI5MDY0Yi4uYTJjNDc4NTUzMjg5N2UwNjE4YzE5NTkwNDcyOTA4M2Y3NzM4
MWQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
QEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBK
U0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzUHJvZmlsaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggODdkMDI2ZGJlMDU4Y2ZmYzE4NmU1OTUy
NTAzYjgyNTkzMDU3M2Q0MC4uZmU4YTRmZGUwOTE2MjMxZmQzN2Q2M2ZjYTE0OGQzODdiY2RlMzg4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApA
QCAtNjQsNyArNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpT
Qzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgICAgICBET01X
cmFwcGVyV29ybGQqIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCAyZGEzZmEwMzRkNmY2MWI5OGZh
MDhjZDgzNTZhNmQzNTM0YjM4N2M5Li4zNjg1Yzg5ZTY4NDg4ZjNlMWQ4OWNlYWEzNDhjOWIxZWI0
OTg4NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFn
ZUNvbnN0cnVjdG9yLmgKaW5kZXggM2M5MzUxYzc0ZmE0MGM4YTQxY2E3MGJjOTg2YWIyOGVlMmNl
ZDAxOC4uMzVjNDQzNDA2NDE2MjNjYTQwYjU1YTYwYjY1OTU4ZTliYWI3NGY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRleCBmYjAzNWM1ZTIwNzZlYjU5NDExYTExYTU2
NDQzZmVlYjRjZjZmOTFhLi44YmU4MWJlY2NiZDRlZWM0Yjk2NjU2M2QwYjhmMjIzNGQzNzJhMTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSlNWYWx1
ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgaWYg
KEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBnZXRBbm9ueW1vdXNWYWx1ZShKU01lc3NhZ2VFdmVudDo6
ZGF0YVNsb3QpKQorICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKQog
ICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CiAKICAgICBNZXNzYWdlRXZlbnQqIGV2ZW50ID0g
c3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oaW1wbCgpKTsKQEAgLTczLDcgKzczLDcgQEAgSlNW
YWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgfQog
CiAgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8gZGVzZXJpYWxpemUg
dGhlIHZhbHVlIGFnYWluLgotICAgIGNvbnN0X2Nhc3Q8SlNNZXNzYWdlRXZlbnQqPih0aGlzKS0+
cHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBKU01lc3NhZ2VFdmVudDo6ZGF0
YVNsb3QsIHJlc3VsdCk7CisgICAgY29uc3RfY2FzdDxKU01lc3NhZ2VFdmVudCo+KHRoaXMpLT5t
X2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgSlNDOjpKU1ZhbHVlIEpTTWVzc2FnZUV2
ZW50Ojppbml0TWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXN1
bHQgPSBzZXJpYWxpemVkVmFsdWUtPmRlc2VyaWFsaXplKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBO
b25UaHJvd2luZyk7CiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKLSAgICBw
dXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIEpTTWVzc2FnZUV2ZW50OjpkYXRh
U2xvdCwgcmVzdWx0KTsKKyAgICBtX2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
cmVzdWx0KTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDY5MzlmYmY4Yjg5
MWZkZTMwMjU5OGFkNjZjNTcwOGJhZGExNzNjZmQuLjM5MjYxYTA5N2Q1NThlY2QwOTA0NmFhNjgy
MTA2MWEzOGJlODhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09w
dGlvbkNvbnN0cnVjdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAppbmRleCAwYjY2
OGRmNzBlNWM5ZGYyN2Q4ODNiMmEwZTFkYjU2N2QwNmJlN2Q2Li5iMDg2MzM2YzQ0MmQ1OGRkMzhl
N2E2MzliNGJiNjBmOGFkZjBiZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWYyNGI5NGQyNzkzOTYzOTIxM2E0YTI3
OTUxNjkyMzgwMDllN2RmZS4uZTg5ZmIzZmVkNDNkMGU1ZDQzYjYyOWI0OWFjYTcxMjc5NWU3ZDAy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KQEAgLTgwMywxNSArODAzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCiAgICAg
ICAgICIgICAge1xuIiAuCi0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAgICAi
ICAgIH1cblxuIik7CiAKLSAgICAjIHZpc2l0IGZ1bmN0aW9uCi0gICAgaWYgKCRuZWVkc01hcmtD
aGlsZHJlbikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImKTtcblxuIik7Ci0gICAgICAgICRzdHJ1
Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIn0gPSAxOwotICAgIH0KLQog
ICAgICMgQ3VzdG9tIHB1c2hFdmVudEhhbmRsZXJTY29wZSBmdW5jdGlvbgogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBwdXNoRXZlbnRI
YW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKikgY29uc3Q7
XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1c2hFdmVu
dEhhbmRsZXJTY29wZSJ9OwogCkBAIC04NjgsMTYgKzg2MiwxOSBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAgICAgICAgICRudW1DdXN0b21BdHRyaWJ1dGVzKysgaWYgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0gfHwgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tR2V0dGVyIn07CiAg
ICAgICAgICAgICAkbnVtQ3VzdG9tQXR0cmlidXRlcysrIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVNldHRlciJ9IHx8ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ0N1c3RvbVNldHRlciJ9OwogICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNh
Y2hlZEF0dHJpYnV0ZSJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZSAuICJTbG90ID0gJG51bUNhY2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291
bnQ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6
V3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4gbV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lIC4gIjtcbiIpOwogICAgICAgICAgICAgICAgICRudW1DYWNoZWRBdHRyaWJ1dGVzKys7Cisg
ICAgICAgICAgICAgICAgJG5lZWRzTWFya0NoaWxkcmVuID0gMTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB1c2luZyAkcGFyZW50Q2xhc3NOYW1lIiAu
ICI6OnB1dEFub255bW91c1ZhbHVlO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdXNpbmcgJHBhcmVudENsYXNzTmFtZSIgLiAiOjpnZXRBbm9ueW1vdXNWYWx1ZTtcbiIp
OworICAgICMgdmlzaXQgZnVuY3Rpb24KKyAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuKSB7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRy
ZW4oSlNDOjpTbG90VmlzaXRvciYpO1xuXG4iKTsKKyAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJK
U0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9IDE7CiAgICAgfQorCiAgICAgaWYgKCRudW1D
dXN0b21BdHRyaWJ1dGVzID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG4g
ICAgLy8gQ3VzdG9tIGF0dHJpYnV0ZXNcbiIpOwogCkBAIC05MjEsMTIgKzkxOCw2IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuIik7CiAgICAgfQotICAgIAotICAgICMg
YW5vbnltb3VzIHNsb3RzCi0gICAgaWYgKCRudW1DYWNoZWRBdHRyaWJ1dGVzKSB7Ci0gICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0g
JG51bUNhY2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7XG4iKTsKLSAg
ICB9CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7CiAgICAgIyBD
b25zdHJ1Y3RvcgpAQCAtMTA0Niw3ICsxMDM3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCiAg
ICAgICAgICIgICAge1xuIiAuCi0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAg
ICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpO1xuIik7CkBAIC0xNTMzLDIzICsxNTI0LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgfQogICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpO1xuIik7Ci0gICAgaWYgKCRudW1DYWNoZWRBdHRyaWJ1dGVz
ID4gMCkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBmb3IgKHVuc2lnbmVkIGkg
PSBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7IGkgPCBBbm9ueW1vdXNTbG90Q291bnQ7IGkrKylc
biIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0QW5vbnltb3VzVmFs
dWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGksIEpTVmFsdWUoKSk7XG4iKTsKLSAgICB9
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCi0gICAgaWYgKCRuZWVkc01hcmtD
aGlsZHJlbiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTWFya0Z1
bmN0aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5n
RmxhZyk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKHN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7XG4iKTsKLSAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTtc
biIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXBsKCktPnZpc2l0SlNFdmVu
dExpc3RlbmVycyh2aXNpdG9yKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7Ci0gICAgfQotCiAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJFeHRlbmRzRE9NR2xvYmFsT2JqZWN0In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJKU09iamVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CkBAIC0xNjE4LDYgKzE1OTQsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7
CiAKKyAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0cmlidXRlIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgJG5l
ZWRzTWFya0NoaWxkcmVuID0gMTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0
eSJ9ICYmIAogICAgICAgICAgICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tEb21haW5TZWN1cml0eSJ9ICYmCiAgICAg
ICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5T25HZXQifSkgewpAQCAtMTY2Myw3ICsx
NjQzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAg
aWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0
dHJpYnV0ZSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAkY2FjaGVJbmRleCA9ICRjdXJy
ZW50Q2FjaGVkQXR0cmlidXRlOwogICAgICAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnRDYWNo
ZWRBdHRyaWJ1dGUrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gY2FzdGVkVGhpcy0+Z2V0QW5vbnltb3Vz
VmFsdWUoIiAuICRjbGFzc05hbWUgLiAiOjoiIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1l
IC4gIlNsb3QpKVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1fIiAuICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZSAuICIuZ2V0KCkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgfQogCkBAIC0xNjg4LDcgKzE2NjgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRh
KCksICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAu
ICJTbG90LCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgbV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4g
Ii5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHJlc3Vs
dDtcbiIpOwogCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTIxOTIsNiArMjE3Miw3IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRl
SW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0aW9uLCAkZnVuY3Rpb25TdHJpbmcsICRw
YXJhbUluZGV4LCAiICAgICIsICRzdmdQcm9wZXJ0eVR5cGUsICRpbXBsQ2xhc3NOYW1lKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsKIAogICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+e292ZXJsb2Fk
c30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDEgJiYgJGZ1bmN0aW9uLT57b3Zlcmxv
YWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSkgewpAQCAtMjIwMyw2ICsyMTg0
LDI5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIjZW5kaWZcblxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4gJiYgISRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojp2aXNpdENoaWxkcmVuKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNp
dENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKHN0cnVjdHVyZSgp
LT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7XG4i
KTsKKyAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVu
dFRhcmdldCJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1w
bCgpLT52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7XG4iKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKKyAgICAgICAgICAg
ICAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRfOworICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0cmlidXRlIn0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICht
XyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiKVxuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1f
IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgIH0KKyAgICAgICAgZGllICJDYW4n
dCBnZW5lcmF0ZSBiaW5kaW5nIGZvciBjbGFzcyB3aXRoIGNhY2hlZCBhdHRyaWJ1dGUgYW5kIGN1
c3RvbSBtYXJrLiIgaWYgKCgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIGFuZCAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTWFya0Z1bmN0aW9uIn0pKTsKICAgICB9CiAK
ICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDApIHsKQEAgLTMxMTcsNyArMzEyMSw3IEBAIHN1YiBH
ZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHtc
biIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgInByb3RlY3RlZDpcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApp
bmRleCAyNmRlMTgzZmViN2M2YTQzY2FlZGI5Y2VkZWM0ZjJhNDBkZTZmYmIyLi41MDQ3YzYxMzYz
NjAyYzNmNzNjYmY3YmM5NmJmNDU5MDI5YjRmZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApA
QCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiBwcm90ZWN0ZWQ6
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IERPTUNv
bnN0cnVjdG9yT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCBi
NzRkNjkxODEwMGJjZjg0ZGUwYWU4MTQ0ZjUyYWUwY2EyODU3ZDYwLi40MzJmNzNiNzRhYTM4MWQx
ODFhN2MxMzE5MjI1YWFhY2ZlMWVmZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC00Niw3ICs0
Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcAppbmRleCA0YjU4NTZlZGU0MDYyZjkwMDQ4MGZhYzk5YjI3MDAyZDA4ODVh
Mzg1Li4zMjZiYjJiMTc4YTg5NjhhNGUzYzI3ZTJkYzY2MDE2ZTcyOWM0NzlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC03OSw3ICs3OSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0
YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6
OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKaW5kZXggZTM1NWFkODAwODhmYzZkNTg0ZDdlNWRlMjI5NzBhYWQ1ZDdmNmJlZC4uZDRkNWY2
NTQxOWVkZDkwZWU5NjY1MGM5N2IxOTJlOGZkNzg1MDNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGQyZDYzN2U4YWVmMDQ1NjI3NjM5YmZkNGMx
ZjBjM2EwZTA1ZTUwOTcuLjNiYjMwN2U2NzliYTkyMzM0M2MxMTUyMzcyZGY0MTFjYzMzNTliNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCkBAIC0xMTYsNiArMTE2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMikKICAgICB7ICJjb25kaXRpb25hbEF0dHI2IiwgRG9udERlbGV0ZSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogI2VuZGlmCisg
ICAgeyAiY2FjaGVkQXR0cmlidXRlMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRB
dHRyaWJ1dGUxKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAiY2Fj
aGVkQXR0cmlidXRlMiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUy
KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiZGVzY3JpcHRpb24i
LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRGVzY3JpcHRpb24pLCAoaW50cHRyX3QpMCBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJpZCIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSWQpLCAoaW50cHRy
X3Qpc2V0SlNUZXN0T2JqSWQgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiaGFzaCIsIERv
bnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpIYXNoKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9S
KDApIH0sCkBAIC0xMjQsNyArMTI2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE9ialRhYmxlVmFsdWVzW10gPQogfTsKIAogI3VuZGVmIFRIVU5LX0dFTkVSQVRPUgotc3Rh
dGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyAxMzQs
IDEyNywgSlNUZXN0T2JqVGFibGVWYWx1ZXMsIDAgfTsKK3N0YXRpYyBKU0NfQ09OU1RfSEFTSFRB
QkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsgMTM1LCAxMjcsIEpTVGVzdE9ialRhYmxl
VmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLwogI2lmIEVOQUJM
RShKSVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2VuZXJhdG9yCkBA
IC0xNzksNyArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5m
byBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogcHJvdGVjdGVk
OgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBET01D
b25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CkBAIC02NzAsNiArNjcyLDMyIEBAIEpT
VmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwKIAogI2VuZGlmCiAKK0pTVmFsdWUganNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50
aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVz
dE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAg
IGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9jYWNoZWRBdHRyaWJ1dGUxLmdldCgpKQorICAg
ICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpbXAt
PmNhY2hlZEF0dHJpYnV0ZTEoKSA/IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgpLT5kZXNlcmlhbGl6
ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSkgOiBqc051bGwoKTsKKyAgICBtX2Nh
Y2hlZEF0dHJpYnV0ZTEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCisKK0pTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRl
MihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQor
eworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFz
T2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIGlmIChKU1Zh
bHVlIGNhY2hlZFZhbHVlID0gbV9jYWNoZWRBdHRyaWJ1dGUyLmdldCgpKQorICAgICAgICByZXR1
cm4gY2FjaGVkVmFsdWU7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+
KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpbXAtPmNhY2hlZEF0
dHJpYnV0ZTIoKSA/IGltcC0+Y2FjaGVkQXR0cmlidXRlMigpLT5kZXNlcmlhbGl6ZShleGVjLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSkgOiBqc051bGwoKTsKKyAgICBtX2NhY2hlZEF0dHJp
YnV0ZTIuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCisKIEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFz
ZSkpOwpAQCAtMTgxNSw2ICsxODQzLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbChFCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCit2b2lkIEpTVGVzdE9iajo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZs
YWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhv
dXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJy
aWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsK
KyAgICBpZiAobV9jYWNoZWRBdHRyaWJ1dGUxKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9j
YWNoZWRBdHRyaWJ1dGUxKTsKKyAgICBpZiAobV9jYWNoZWRBdHRyaWJ1dGUyKQorICAgICAgICB2
aXNpdG9yLmFwcGVuZCgmbV9jYWNoZWRBdHRyaWJ1dGUyKTsKK30KKwogLy8gQ29uc3RhbnQgZ2V0
dGVycwogCiBKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzAoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA0ZDBmNzk3YzNkYzUyNTliN2Jm
YzE5YTAyOTg3OTc0NjllMTdmM2JmLi5mYjc0YjU2MDk5NzllMjY2NDM1ZDdkNTQ1OWJkNzY2YWMw
MzQxOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCkBAIC00NSwxMCArNDUsMTQgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBK
U0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMTsKKyAgICBK
U0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMjsKKyAgICB2
aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJik7CisKIAogICAgIC8v
IEN1c3RvbSBhdHRyaWJ1dGVzCiAgICAgSlNDOjpKU1ZhbHVlIGN1c3RvbUF0dHIoSlNDOjpFeGVj
U3RhdGUqKSBjb25zdDsKQEAgLTYzLDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VGVz
dE9iaj4gbV9pbXBsOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE9iaihKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxUZXN0T2JqPik7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogfTsKIAogSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RP
YmoqKTsKQEAgLTgzLDEzICs4NywxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEpTVGVzdE9ialByb3RvdHlwZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsgfQogcHJvdGVjdGVkOgotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBK
U0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CiAK
IC8vIEZ1bmN0aW9ucwpAQCAtMjAxLDYgKzIwNSw4IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
CiB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOworSlNDOjpK
U1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakRl
c2NyaXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50
aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9iaklkKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4
IGIwNzkzMzk4MWJjODM2MDYwMmZlMjM5YTcxZmRiM2NlOTA1YWIzYWQuLjczMmIyNzI4MWEwOGE1
MmI3MjA3ZDFmZDIyNmEzODhkZjJmODJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oCmluZGV4IDZkZmE3ODEwZWMzNjMzODE5NmE3YmNmOTQzYjYyYWM4NTJh
Y2U5OGYuLmMxNGRkOTBiNGZiNjY0ZTQyNmFjZTI3YjMwNjA2OGZlNWRhMzgwZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAg
ICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDRhY2FlNmE5MzhlODBlYzAyZGVj
MDRhMDgxMGU3NzMyNTk2NTgzODAuLjc1YjQ5YWJjMjg0MzE1ZTMxNTcwYjk2OWJiMTU5Y2QyYTE4
N2M5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKQEAgLTE0Niw2ICsxNDYsMTEgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMl0gVGVzdE9iamVjdENDb25z
dHJ1Y3RvciBjb25kaXRpb25hbEF0dHI2OwogCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBk
ZWZpbmVkKFRFU1RJTkdfSlMpCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0
cmlidXRlXSBhbnkgY2FjaGVkQXR0cmlidXRlMTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDYWNoZWRBdHRyaWJ1dGVdIGFueSBjYWNoZWRBdHRyaWJ1dGUyOworI2VuZGlmCisKKyNpZiBk
ZWZpbmVkKFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElOR19KUykKICAgICAgICAgLy8gT3Zl
cmxvYWRzCiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFy
ZywgaW4gRE9NU3RyaW5nIHN0ckFyZyk7CiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhv
ZChpbiBUZXN0T2JqIG9iakFyZywgaW4gW09wdGlvbmFsXSBsb25nIGludEFyZyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CmluZGV4IDU2ZDZjN2E0ODM4YmQ4ODUxMDQ0MDAwNGE5NGMyMWMxMGYwOGU3OGUuLjhkZDY2NjJm
NDE0MmVhNzIyZTY0NjFiZTQ1MTgwODFmZTg1ZTZiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKICNpbmNsdWRlICJWOFByb3h5
LmgiCiAjaW5jbHVkZSAiVjhUZXN0Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOGFueS5oIgogI2lu
Y2x1ZGUgIlY4aW50LmgiCiAjaW5jbHVkZSAiVjhsb2cuaCIKICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CkBAIC01ODAsNiArNTgxLDM0IEBAIHN0YXRpYyB2b2lkIGNvbmRpdGlvbmFsQXR0cjNBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6CiAKICNlbmRp
ZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiAKK3N0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUxLl9nZXQiKTsKKyAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFJlZlB0
cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgpOworICAgIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0
KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICBpZiAod3JhcHBl
ci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpKTsKKyAg
ICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6
c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTEi
LCB3cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK3N0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5D
X1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUyLl9nZXQiKTsKKyAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFJlZlB0cjxh
bnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMigpOworICAgIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KHJl
c3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICBpZiAod3JhcHBlci5J
c0VtcHR5KCkpIHsKKyAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpKTsKKyAgICAg
ICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0
TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTIiLCB3
cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0ckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdFJ1bnRpbWVBdHRyMS5fZ2V0Iik7CkBAIC0x
Mjc3LDYgKzEzMDYsMTAgQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0
dHJzW10gPSB7CiAgICAgLy8gQXR0cmlidXRlICdjb25kaXRpb25hbEF0dHI2JyAoVHlwZTogJ2F0
dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsJykKICAgICB7ImNvbmRpdGlvbmFsQXR0cjYi
LCBUZXN0T2JqSW50ZXJuYWw6OlRlc3RPYmpDb25zdHJ1Y3RvckdldHRlciwgMCwgJlY4VGVzdE9i
amVjdEM6OmluZm8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCks
IHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6OlJlYWRPbmx5KSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKQorICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVkQXR0cmlidXRlMScgKFR5cGU6ICdy
ZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQorICAgIHsiY2Fj
aGVkQXR0cmlidXRlMSIsIFRlc3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0
ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4
OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSks
IDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVkQXR0cmlidXRl
MicgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUn
KQorICAgIHsiY2FjaGVkQXR0cmlidXRlMiIsIFRlc3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmli
dXRlMkF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnZGVz
Y3JpcHRpb24nIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7
ImRlc2NyaXB0aW9uIiwgVGVzdE9iakludGVybmFsOjpkZXNjcmlwdGlvbkF0dHJHZXR0ZXIsIDAs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnaWQnIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50
aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmlu
ZGV4IGVmMTljOGE2ZWIzMmUzNGU4N2E2MTA3OGI4NDVlMGU2MDBlN2IzMzYuLmY5ODRhNWNhOGE3
ZWJhNmIzNDc4MzBlMTZjMTZhYmQzOGJlMmQwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Q1J1bnRpbWVPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRleCBmY2QyNDJhNWE5YzU4ZWI5N2YyODdjYzA3YTlh
OGEzZGIyODlhNGMxLi5kZTYxNDQ5NTE3MmRjYmRhNWVhOTNiMDEwNDEwMTRjMjYxYzY3Zjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDdlNjlmYmViNTdlMDhj
MmIxMDVhYzMzNmU2NzI0ODNhYzVmOWEzYWUuLjM5NzIwMDk3ZDVhMmEyODc1ZjM3MGM5ZmIwNGVj
MDI2YzEwNjAwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUluc3RhbmNlSlNDLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNj
L0phdmFSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZh
UnVudGltZU9iamVjdC5oCmluZGV4IGJiMTc5Mzg2NGJhMzM1MjAxZmU4MDEzOWVhZmFkMzNkZjcy
NzYxMzguLjhmYTQ1MmVlOGRiNzRkNjlhNzJlOTE2NjhmZTI4MWRmNDcwZGU4M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaApAQCAt
NTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09i
akNSdW50aW1lT2JqZWN0LmgKaW5kZXggMDM0MGMwNTFiZTliMTBjZWIxNDhmNTg0MDJmZmRjZmZi
YjJiZDE5Yi4uZGQ3MzM5MGQ3N2RlMWE5MzhhY2VjODFmYTMyMWE1NmI1NDg0NDk1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCkBAIC01Myw3
ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsK
ICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0
YW5jZS5tbQppbmRleCBmMmQ3OWE2NTEzYmQ3NGI5YjgxYTE1MjljNDM3Nzk3OWZjMjdlZWRkLi5h
NmFhZjYwNTM4ZGExMDY3NzY0OTk2YjAyMjlkZjY4NTZmZGMyZjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTE4Myw3ICsxODMsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggMzQ2NDg0OGFiZGYyNjI5ODIzMWRmMmI3NmZiNThm
NTI3YTE5ZDBkYS4uODM4MGI5ZGFhMTIzOTU0NDRhMWYwYjFhYjczZjM1YWJjYjUxMTZkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTExNCw3ICsxMTQs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
aW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcApp
bmRleCBmYzFhMzQ2M2M4MDQxZmQzOTgwY2Y0Yzg1ZWJlNTFhYTYzYWJhNDZkLi42YTQ4YjE0NmUw
ZjY1ZWRjZWUyMDk2ZGZjZDMwZDFiMjdhNWFjM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9pbnN0YW5jZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
IFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggNjg3NDFiNDli
ZGQ4NWEyOTM5ZWRlYzMzM2Y0Njg4NjQwZTkxNTZjYS4uZjBiMjZhOGM1Y2Q4Nzk3YjdiYmQ1OTg5
OWQ4ZjNhZDNhNmM0ZmZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3BpeG1hcHJ1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXht
YXBydW50aW1lLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCAgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggOGI2ZjAzNGRjMzFmNTBkOTliZDFlMmQ4ZTNm
ZWM4NmE2MjJmMWViZC4uMjRkZTI1NWMxNDgxZTQ2NmE0Yzc3NzM3MTBjZmVlNDUzZTViODJjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNDAsNyArMTQwLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCA2Y2I4
ZWIzM2Q3ZGM2NWIwZDQzNmEwYWJjZmEwZmZhZDhmYWM4ODVkLi5hMDg3N2EwNjJkZDY5OWMxNzVk
ZTE2ZGYzY2FmYWFkZjEwY2M4ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuaAppbmRleCA0NGIwODdhZDJiN2Q4MmFjZWRhYTgyZmFkMDNkZDFiNjhlMjg1OTY3
Li5kMWFiOTlkZTdlYjAyZGYyNGM0ZjA0YjQ1MjY2Zjg2NGNiMGYyMTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDg3YjdmNzA2Njc5YTI2NWMy
ODVlN2E2NWE5YjZhOWE4NGMwNjJlOTguLmEyYzkyODg4MzdiZWMzZjJkZmVkM2RjOTRjNmNkZTYy
M2Y0OTEwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03MCw3
ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsK
ICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBhOTAwODIwOThlOGY2NzVl
OWY2MzMwY2M3Zjk4MzgxNjZiZDI5MmY0Li4zMmM0MWVmNzZhN2MxMzQwYTZkZjkwYWNlNGFkMGVh
NGFkZDM5YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDkg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9y
dCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODgxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Ugb2YgQW5vbnltb3Vz
U2xvdENvdW50CisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wOS0w
OSAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNb3ZlIHBh
Z2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmlu
ZGV4IDFkZjAyZGZjNmExYTVlZmIxYmMyMDIyYjg2NzRhZTFjMzc1OGZmODAuLmE4YTI3YTkyYWU0
NWIwYTBkNmEzZTRlNjJhMTU5YzM3OTRlMzY4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKaW5kZXggNWFlOTgzODUw
NDA0ZjUxYzY0NmU4MmZiNzI4NmM3NWE5NWRkNzM1MC4uMWI0MGMxYjRlZjE3MGFhODVmM2MyNzBk
MGY3YTRjODZiYzdhYTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
OjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMzg4NGY5YWM4NWNhMTEyOWYz
NjE3YjhjNDkzZGJmZWMzMjM0MzE3Li43NjA0YTkxOTUxOWI4NGMwNzFhMWQwNGFiZDJkY2Q5OTRl
MGJhZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDkgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgYW5v
bnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Ugb2YgQW5vbnltb3VzU2xvdENvdW50
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaDoK
KyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorICAgICAgICAoV2Vi
S2l0OjpKU05QT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDExLTA5LTA5ICBGYWR5IFNh
bXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFj
dG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgK
aW5kZXggZGM1YmU3Yzc5OGFhMzA2Y2YxZWFkMGE1NGQyY2ExNGE3NGQzY2EwNC4uOTI5OTAxYjlh
NWVmYTMwMTk1Zjg0NDEyYWNjNjc5MmFhMzBhMTY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC01Nyw3
ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKaW5kZXggYjZlZGZhNWE3NjUwNGRjMDE5OWU2ZmQwZTllYWExYmM1Y2Y2
MDk5Zi4uZTY1Yzg5ZGU1ZWNmMGIyNjMwYzgyMzE0OTM5MDYyYWU2MzYyZWZmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgdmlydHVhbCBKU0M6OkNhbGxUeXBlIGdldENhbGxE
YXRhKEpTQzo6Q2FsbERhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106962</attachid>
            <date>2011-09-09 22:33:52 -0700</date>
            <delta_ts>2011-09-10 14:31:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67881-20110909223349.patch</filename>
            <type>text/plain</type>
            <size>142587</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGE2ZjFiY2Q0ZWMxODI2ZmQ2NTc2NmZk
OWE0ODljMTM4ZTNhOTJjMmEuLjcyMGZkZmM0MWQxNzk3Mjk4MmNjOWQ1NTUxNzgzOTA1NTg0OWFj
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggMzk2OTA0ODQ3MGIxZDFlMDBjN2ZmNjMzNjk5MmZj
ZmMxNjQwNjMzZS4uMTNlN2UwMDlkYmFlNjVkNDQ1OTcwZDJmZjhhMGM5MGM2ODY5NTJjMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01
MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAvLyByZWZhY3RvciB0aGUgY29kZSBzbyB0aGlzIG92
ZXJyaWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCA2ZmRkZmZiZTNjNjNiZDU0NWM2NWJiZGRjM2UxMDdjMDRmYzA5YmY3Li5jMGQx
NjEwZmY2MDdjZWFkYzQ0OGE0NjRmYjZiMmI5YWMwMWFiYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8p
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IFBhcmVudDo6QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICB9CiAgICAgCiAg
ICAgSlNWYWx1ZSBnZXRQcml2YXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggN2U2NGEzNmMwYjdmMTkxZjI2
MGQzNjQ3MGM0ZTBlNmE5OTRmMGExNy4uY2RlOWVlMWFmOTAxODIxMjBmNjEzMDY0ODYyNTdjNzIw
MDdjOTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY3IEBACisyMDEx
LTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFu
b255bW91cyBzbG90cywgZXNzZW50aWFsbHkgYSBtZWNoYW5pY2FsIGNoYW5nZQorICAgICAgICBp
biBKYXZhU2NyaXB0Q29yZQorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZSk6CisgICAgICAgICogaGVhcC9NYXJrU3Rh
Y2suaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1
bWVudHM6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAgKEpTQzo6Qm9v
bGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJv
dG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAg
KEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OkRhdGVQ
cm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAo
SlNDOjpEYXRlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJh
c2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAg
KEpTQzo6SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNGaW5h
bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0
YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNT
dHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFy
aWFibGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBw
ZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAoSlNDOjpNYXRo
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9OdW1iZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6TnVtYmVyT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6Ok51bWJlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
T2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJlZ0V4
cDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmg6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5O
b2RlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90
eXBlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAoSlND
OjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24pOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6dG9EaWN0aW9uYXJ5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
cHJldmVudEV4dGVuc2lvbnNUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
bGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRk
UHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwdXRTcGVjaWZpY1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNo
ZWNrQ29uc2lzdGVuY3kpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm9w
ZXJ0eVN0b3JhZ2VTaXplKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hh
aW46OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggODNjZTg1MDY4YTZmZjhl
ZGJhNDhiZmFjOTg5OGQwNDE5MjU5YmZmNC4uNDViZDY5ZDMzMzE5NTZkZmU1MjE3ZjI2NjhkN2Vh
ZjY5ZTQ3ZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBA
IC0zMzgsNiArMzM4LDcgQEAgX19aTjNKU0M4ZXZhbHVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0
U2NvcGVDaGFpbk5vZGVFUktOU18xMFNvdXJjZUNvZGVFTlNfN0pTVmEKIF9fWk4zSlNDOGlzWm9t
YmllRVBLTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOUNvZGVCbG9ja0QxRXYKIF9fWk4zSlNDOUNvZGVC
bG9ja0QyRXYKK19fWk4zSlNDOU1hcmtTdGFjazEzdmFsaWRhdGVWYWx1ZUVOU183SlNWYWx1ZUUK
IF9fWk4zSlNDOVN0cnVjdHVyZTIxYWRkUHJvcGVydHlUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFs
RGF0YUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1
Y3R1cmUyMm1hdGVyaWFsaXplUHJvcGVydHlNYXBFUk5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNK
U0M5U3RydWN0dXJlMjVjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0
YUVQUzBfTlNfN0pTVmFsdWVFCkBAIC0zNDcsNyArMzQ4LDcgQEAgX19aTjNKU0M5U3RydWN0dXJl
MjhhZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEw
SWRlbnQKIF9fWk4zSlNDOVN0cnVjdHVyZTNnZXRFUk5TXzEySlNHbG9iYWxEYXRhRVBOM1dURjEw
U3RyaW5nSW1wbEVSalJQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOVN0cnVjdHVyZTQwYWRkUHJvcGVy
dHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUVQUzBfUktOU18xMElkZW50aWZpZXJFalBO
U182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmU2c19pbmZvRQotX19aTjNKU0M5U3RydWN0
dXJlQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RU5TXzdKU1ZhbHVl
RVJLTlNfOFR5cGVJbmZvRWpQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzlTdHJ1Y3R1cmVDMUVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTlNfN0pTVmFsdWVFUktOU184
VHlwZUluZm9FUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0M5U3RydWN0dXJlRDFFdgogX19aTjNK
U0M5Y29uc3RydWN0RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzEzQ29uc3RydWN0VHlw
ZUVSS05TXzEzQ29uc3RydWN0RGF0YUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0NlcUVSS05TXzdV
U3RyaW5nRVBLYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZgppbmRleCA1YjM4MDZhMmUyM2U1YjVlNGM4MjAyNDJhNzA2ZjZjNjNiMjRjMGVl
Li4xZDhkN2U4M2U3OTU0NjhhNzJhNTIzYzZiYjBiOWMwODBmZTRmNzk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTgsNyAr
MTgsNyBAQCBFWFBPUlRTCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFs
T2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoKICAgICA/PzBTSEExQFdURkBA
UUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBB
VlN0cnVjdHVyZUAxQEBaCi0gICA/PzBTdHJ1Y3R1cmVASlNDQEBBQUVAQUFWSlNHbG9iYWxEYXRh
QDFAUEFWSlNHbG9iYWxPYmplY3RAMUBWSlNWYWx1ZUAxQEFCVlR5cGVJbmZvQDFASVBCVUNsYXNz
SW5mb0AxQEBaCisgICAgPz8wU3RydWN0dXJlQEpTQ0BAQUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBB
VkpTR2xvYmFsT2JqZWN0QDFAVkpTVmFsdWVAMUBBQlZUeXBlSW5mb0AxQFBCVUNsYXNzSW5mb0Ax
QEBaCiAgICAgPz8wVGhyZWFkQ29uZGl0aW9uQFdURkBAUUFFQFhaCiAgICAgPz8wVVN0cmluZ0BK
U0NAQFFBRUBQQkRAWgogICAgID8/MFVTdHJpbmdASlNDQEBRQUVAUEJESUBaCkBAIC0zODIsNiAr
MzgyLDcgQEAgRVhQT1JUUwogICAgID91bnByb3RlY3RASGVhcEBKU0NAQFFBRV9OVkpTVmFsdWVA
MkBAWgogICAgID91bndyYXBwZWRPYmplY3RASlNPYmplY3RASlNDQEBVQUVQQVYxMkBYWgogICAg
ID91dGY4QFVTdHJpbmdASlNDQEBRQkU/QVZDU3RyaW5nQFdURkBAX05AWgorICAgID92YWxpZGF0
ZVZhbHVlQE1hcmtTdGFja0BKU0NAQEtBWFZKU1ZhbHVlQDJAQFoKICAgICA/dmlzaXRDaGlsZHJl
bkBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRVhBQVZTbG90VmlzaXRvckAyQEBaCiAgICAgP3Zpc2l0
Q2hpbGRyZW5ASlNPYmplY3RASlNDQEBVQUVYQUFWU2xvdFZpc2l0b3JAMkBAWgogICAgID92aXNp
dENoaWxkcmVuQEpTV3JhcHBlck9iamVjdEBKU0NAQEVBRVhBQVZTbG90VmlzaXRvckAyQEBaCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKaW5kZXggNDRiNjI2NzIyN2Q3YmY0NTRhZjhmMGZhMWI2NTEyOTg5ZjgzYTBiYy4uY2NkYmRl
OGY2Y2I0MGFiNzE5ZDU0ODZhMGE0ODU0ZTcwOGZhOWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNTYsNyArNTYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCmluZGV4IDdhMDRlMDYwNzgxOTRiNjEy
Y2EyYzEzMGYzYzczOTg3NTU2NTA1YzkuLmZkNjY4YmQ5ZWRiNjk4MTFjYmEzOTdlYTc4ZGNiNzEy
OTVkYzUyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFj
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcApAQCAt
MTc0LDYgKzE3NCwxMCBAQCB2b2lkIE1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZShKU1ZhbHVlIHZh
bHVlKQogICAgIGlmIChjZWxsLT5zdHJ1Y3R1cmUoKS0+c3RydWN0dXJlKCktPkpTQ2VsbDo6Y2xh
c3NJbmZvKCkgIT0gY2VsbC0+c3RydWN0dXJlKCktPkpTQ2VsbDo6Y2xhc3NJbmZvKCkpCiAgICAg
ICAgIENSQVNIKCk7CiB9CisjZWxzZQordm9pZCBNYXJrU3RhY2s6OnZhbGlkYXRlVmFsdWUoSlNW
YWx1ZSkKK3sKK30gCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtTdGFjay5oCmluZGV4IGUxYzI0OWEyMGQ0YThmY2MyNTA4ZDkyMzg2ZjI5
YTY4NmI2ZTc4MWEuLjg0MjdiNzM3ZDI4OWU4NzliZDk4ODE2YmM1MWRiNGIxMzEwNTc1ODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCkBAIC0xMTgsOCArMTE4LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9O
KQogICAgICAgICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVNldChKU1ZhbHVlKiwgc2l6ZV90KTsKLSAg
ICAgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVWYWx1ZShKU1ZhbHVlKTsKICNlbmRpZgorICAgICAg
ICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVZhbHVlKEpTVmFsdWUpOwogCiAgICAgICAgIHZvaWQgYXBw
ZW5kKEpTVmFsdWUqKTsKICAgICAgICAgdm9pZCBhcHBlbmQoSlNWYWx1ZSosIHNpemVfdCBjb3Vu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDAwNTE3
NDIxMzc3MTllNmIxNzM0YWVlOWYzODI5YWQzN2Y2ZjNiMDUuLjU2MTEzZGZhNjFkMDkyMjVkMWNi
YzE5YzM5Y2YzMmExNDMyM2I2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCkBAIC0xMTMsNyArMTEzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAg
ICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IDkzNDc1MjIxYmI0YTViN2MwNWIwYzE0ZDE0NTFhMzkz
ZjVhNDgzNmMuLmMyYzcxOThkNjZjZjJmNTY5Yjk4NjU3NjM1MTg4NWM2YTNjNWNmZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAg
LTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAK
aW5kZXggNDJmNDFhNjMxZDQ5Y2YzZGNlOWNhOGZkN2U2YjZkYThkNTY0MzYwNS4uYzc2NTVkMzdl
OWE4MTU2ZTJjZDc4M2RmOTlhN2FlNmFkNjJmMTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTIzLDcgKzEyMyw2IEBAIHZv
aWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3Vz
VmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAK
IGJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggNzVl
NmU4MGJhNzJmN2ExYWYyYTFlODJjOGMxNzdiNWU4ZmE4ZjFmNi4uNDFmZjU5NGI3YmRhNWE5OGRj
Mzg3MWFmMmQ4NjI3MTQ1ZWFjMGVkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00NywxMyArNDcsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxPYmplY3QqKTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnlt
b3VzU2xvdENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuaAppbmRleCBjZWQxY2ViMzhhNWYxNTlmYTkzODI5NDQ4OTM4MGM3MjlhOGY5
MmE3Li4wMDBkMTk3YmYxZDAxMzkzZmQyMzk5YTBiZDdiOTRhNWE3YzU1Y2FhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBAIC00NCw3ICs0NCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCA3
MWRiOWM0NDFlZTVlMjliOWE4ZjFjZTQ5ODU3Y2Y2YWI5YTRlZWE3Li5hYzdhNmU5NDljMDcxN2Nj
OTk3MTIyN2E0YThiZDY2NmY3NDcwMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNTUsMTMgKzU1LDEyIEBAIEJvb2xl
YW5Qcm90b3R5cGU6OkJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0CiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0
KTsKIH0KIAotdm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEJvb2xlYW5Qcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgc2V0SW50
ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihmYWxzZSkpOwogCiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBCb29sZWFu
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAppbmRleCBiNzM3ZGZmNzI4
ODU5NmZlYmJjYzhhYWQxYjZmOGRlMTJmNmNhM2VjLi4yYTZjODFmYTNkNTMwZDYwYjgyZTQ1N2U4
OTgyOGVhOTg3OGZmMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5oCkBAIC0zOCwxMyArMzgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQm9vbGVhbk9i
amVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9u
eW1vdXNTbG90Q291bnQgPSBCb29sZWFuT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCA5MzZhZmMxZjUxNWQxZWY1YmE5MTRmMTIwNzUw
NzRhOGQ3ZGRkOWE4Li41ZmE1MWRmOTU5OWVkM2UxNDZiNmI4M2NhOGIwMmQ5MjEwMjg1MWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApA
QCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5j
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXgg
YmQzNmViNzMzYWVlZGVhYmIwM2I0MDkzOWVmMDJmNTgzZmJiY2ZlMy4uMTIxMzBhNDQzYTI0YmZl
Yjg0YmY2YTNiNThhOTE2MDEyZWY4MzJkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA3NTBkZGY5NWExYjQ4YWE0ZTRkNzc5ODZjNTQ1YzY4
NDU3YjM2MjBjLi43ODM4NTg1OGRiMGU2MjdjOGM3YjY0NTA1NTI0MjU4YzJjMDc0MzkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAt
NDM2LDEzICs0MzYsMTIgQEAgRGF0ZVByb3RvdHlwZTo6RGF0ZVByb3RvdHlwZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnUKICAgICBmaW5pc2hDcmVh
dGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi12b2lkIERhdGVQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K3ZvaWQgRGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCopCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0
YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8gVGhlIGNvbnN0
cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIERhdGVDb25zdHJ1Y3RvciBoYXMgYmVl
biBidWlsdC4KLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIDAsIGds
b2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgRGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmgKaW5kZXggMTA2OTA4NTI4MmFlMjVkNWFmY2M4OWI5YWM5MjMxNzMxM2UwMjI5Yy4uY2Rh
NmI3YWZhOTcxNTU4MDMxMWY0MGFiZjk0M2Q1ZmQyNDMwYTQwMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtNDUsMTUgKzQ1LDEyIEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IERhdGVJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7Ci0KLSAgICAgICAgQ09NUElMRV9B
U1NFUlQoIURhdGVJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50LCBEYXRlUHJvdG90eXBlX3N0
b21wc19vbl95b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEFub255bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5kZXgg
NWI4Zjk1YTVjZTlkMzIyODU2ZmFhZTk5YjJkZTA4NzhjMTlkZDkxMy4uMzlkNmMyMmYzYTliNGIx
MWVmMjg3NjRlMGQwM2Q4ZTg5Nzc1Zjg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1l
c3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlw
ZS5jcHAKaW5kZXggMmE5YjlhOWIwNDBhNTQ1Mjg4NWQ4NDE1ZWQwMWEyZWMxYWRjNjMwMS4uMmIy
ZjAyY2Y2ZDg3OTJlZjQ0ZDVmYzlmOWY0Zjc0OGVjZjViMDU4NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNTUsMTIgKzU1LDEx
IEBAIEVycm9yUHJvdG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogewogfQogCi12b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lk
IEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCks
ICIiKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxT
dHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBF
cnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAppbmRleCA5MzQ4NGMyNzQ2
NWU0ZDkxNTU0OWYxNWUxMDg3M2ZlYzU5OGRkYWMwLi40MjVkNjZiY2UzZWI2YjJmYjEwNWIyOGZj
MWM3NDRhZjNiYWI0Yzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yUHJvdG90eXBlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC01MCw3ICs1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBFcnJvckluc3Rh
bmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmgKaW5kZXggMzllYmUxNjdkZTAwNWY1Nzk3ZjdmOTA1YWZhOTA4NmMx
NDgxNTFiZC4uYjE3MjRkMDM0NjYzYmYzMTEzN2QwYThlYWMxMjZhODhlOTNkMTEyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAt
NzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmgKaW5kZXggNmJmNjQyNWMzMWIyY2U5NWMzN2M4NTFlODZhOTYxODg5NGY1MDY5Yy4uNTM0MTUz
YWU4NDk0Y2RlMTk5ZWFiMzAwYWYzNWQ3NDgzYzRmZDFiMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIHJldHVybiBtX251bVBhcmFtZXRlcnNGb3JDYWxsID09IE5VTV9QQVJB
TUVURVJTX0lTX0hPU1Q7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IH0KICAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCkBAIC0xOTgsNyArMTk4LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24oKSB7
IHJldHVybiBtX2Z1bmN0aW9uOyB9CiAKLSAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oTGVhZlR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhMZWFmVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgfQogICAgICAgICAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKQEAgLTMzNCw3ICszMzQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNlbmRpZgogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKQEAgLTM5NSw3ICszOTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAg
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhD
b21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNTUxLDcgKzU1
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxl
KiBmcm9tR2xvYmFsQ29kZShjb25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlKiwgRGVidWdnZXIq
LCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqKiBleGNlcHRpb24pOwogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IDEwZDFhMTc2ZTIyY2Jj
MmEzOGJlNDRjMzY5NjE1ZWE4NDA5NWVhMGYuLjlhZDcwZjcwMTU2MmMyZDk1N2Q3ZGJlOTgzZDAw
YjBmNTZmOTM5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQog
CiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJT
ZXR0ZXIuaAppbmRleCAyMTExYTVhNWY5YmYyYmNlM2QzYWVlZGUwMTU3ZmUzYjQxYjdkYTUwLi4y
NWEzNjkyNDI2YjMwODg0MWU4ZWUyNzYzMGI0ZTdmMzIxYzJiZGYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNjEsNyArNjEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRTZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU09iamVjdCogc2V0dGVyKSB7IG1fc2V0dGVyLnNldChnbG9iYWxEYXRhLCB0aGlzLCBz
ZXR0ZXIpOyB9CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRl
clNldHRlclR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBP
dmVycmlkZXNWaXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDIzZGY2ZDM0NmVhN2Rm
ODE0YTQ5NDcwYzc5YmFkYWRkYmQ3ZjFlZjIuLjBmNjE1OWIzNjRhZjM5NzIxNGJjYTNiYjhkZWYx
MGVhNTE5ODlkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAg
ICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAg
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFs
dWVXcmFwcGVyLmgKaW5kZXggNmMwZDMzZDM3YjA5ZTY2MDdmZDJjZGJhZjhlMTFiYzI1MTY1Y2Yy
MS4uYjI3YjJlNTY1MmIyMTAwZTkxNjM5MWE0NDRjNWM3MWUwMTllMjA2OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCkBAIC00MSw3
ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA3MDFlMjE4ZWFhZDhl
YjA2MzRiMDVlOTcyYjExMmM0MjQwNzgyMDViLi5kODYzNTkzYjMyYjE4MDRiNjE2ZTdiYTViYzhi
ZjFjYzVhNmE1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaApAQCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAKICAgICBw
cm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggMzU0NjU5YTM2OTM1YjZmZTZm
OTNiY2RlNDRlMWM4OTkwZWMwMTI1OS4uNTY2MjIyNWU1N2NkMTk3NTNjZDI5NDZlMWI2MmY1NzI2
YzA2ZGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMTUx
LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAg
aW5saW5lIHZvaWQgdmlzaXRDaGlsZHJlbkRpcmVjdChTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDQzZmQyMjk5ZGU4
MWNhZDdmMGU4MTY2MDNmYzQ2YjI5ODZlYTQ5NTEuLmRhYzNkOTRkMjg5NzZjNDlhZGRkODA5NGVm
MGRkMzQzY2EwOTE5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSlNCeXRlQXJyYXk6On5KU0J5dGVBcnJheSgp
CiAKIFN0cnVjdHVyZSogSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlLCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKQogewotICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNz
SW5mbyk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGNs
YXNzSW5mbyk7CiB9CiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCBlMTA2NDQ2
NmYwNzQ4MDUzY2Q5MGJmNGQ5OTE0ODQwMWMxMjE1ZDQwLi41YjNiNzZlMGI3YjMzZTgwYmVhMGFh
MjFkNzgzNjcxYzZkODAzMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
aApAQCAtMTQ1LDcgKzE0NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlmCiAgICAgICAgIAog
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Ns
b3RDb3VudCA9IDA7CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEm
KTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUq
LCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmgKaW5kZXggMWRiM2M4MGRiNmM0MDQyYzEyYWJhZDI3MzI1YmFjZTVhY2YxOWFm
Yy4uYjE5MjZhNGIzOGZlM2ViZTllZDIxMTEzZDJjZjI1NDVkMzg1YzQzNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTE5LDcgKzExOSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChnbG9iYWxP
YmplY3QpOwotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICAgICAg
fQogCiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBkMGE4MDJlZGUw
NjZlNjhmOGVmNjFhMjE5NDVhZWE0Y2U0ODE3NGM4Li42MGE0NWU2M2NkZTM5NzAxMjk4ZjAwNmE3
ZTFiYWUzMWM1M2EwZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKQEAgLTE2Nyw3ICsxNjcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgewogICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAg
ICAgICAgICBzdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHRoaXMpOwot
ICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RD
b3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAg
ICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlz
VmFsdWUpOwogICAgICAgICB9CkBAIC0yNzQsNyArMjczLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHJlZ2lzdGVyV2Vha01hcChPcGFxdWVKU1dlYWtP
YmplY3RNYXAqIG1hcCkKQEAgLTI5NCw3ICsyOTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgZG91YmxlIHdlYWtSYW5kb21OdW1iZXIoKSB7IHJldHVybiBtX3dlYWtSYW5kb20uZ2V0KCk7
IH0KICAgICBwcm90ZWN0ZWQ6CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255
bW91c1Nsb3RDb3VudCA9IEpTVmFyaWFibGVPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAg
ICAgICAgc3RydWN0IEdsb2JhbFByb3BlcnR5SW5mbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggN2I2OGI1MjJjY2Y3NjJkMWQxMzVjYzZj
MTc0NWJiOWQzMzhjNjIxMC4uMjFmZTQyOTE2YmFhNjRlMjIwMzFhMzU1ZTRhYWVkMmE5YWU0ODkx
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApA
QCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IDgyYTMy
ZjhlYzU3ZmQ0Yzc5Mzk5ZWIxODQxYWMxOTBhNmRkYzc0YjguLmJmMWJhOGMwMjg2ZjFjYjVkMmUx
MmJkOWNhNzc5ZWM2ODI2YzUyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAog
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYmM0MzJkM2FjOGYy
OTI2ZDk1NWRjNmVjYzY5MjFmNThiNThkYzQwZi4uZTNmYjc2Y2ZlYWIyZTVlYmY4YWZmOTJiYzk0
MDViYzMwOWU0NDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CkBAIC0yMzEsMjIgKzIzMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9zdHJ1
Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMpOwogICAg
ICAgICB9CiAKLSAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkp
OwotICAgICAgICAgICAgbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpLT5zZXQoZ2xvYmFsRGF0YSwg
dGhpcywgdmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgY2xlYXJBbm9ueW1vdXNWYWx1
ZSh1bnNpZ25lZCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwg
bV9zdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKLSAgICAgICAgICAgIGxvY2F0aW9u
Rm9yT2Zmc2V0KGluZGV4KS0+Y2xlYXIoKTsKLSAgICAgICAgfQotICAgICAgICBKU1ZhbHVlIGdl
dEFub255bW91c1ZhbHVlKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgICAgICB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwot
ICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KS0+Z2V0KCk7Ci0gICAg
ICAgIH0KLQogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3QKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5nbG9iYWxPYmplY3QoKSk7
CkBAIC0yNzQsNyArMjU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTM1MSw3ICszMzUs
NyBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkg
Pj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpA
QCAtMzk4LDcgKzM4Miw3IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0
b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAKICAgICAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAg
ICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IGNjMTIyYmQ3ZGVjYzgzNmVhOWYzZDE3
MGQ3ZjM4YjAxYzI3NWNjYjIuLjRjN2E2ZWU5Njc0NThlOTE0YTQ3MzBmZGU2NGEzYWE1ZTQ1MTA5
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC01NCw5ICs1NCw4IEBAIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IqIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0CiAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhleGVjKTsKICAgICBv
LT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwogICAgIHNpemVfdCBudW1D
YWNoZWFibGVTbG90cyA9IDA7Ci0gICAgaWYgKCFvLT5zdHJ1Y3R1cmUoKS0+aGFzTm9uRW51bWVy
YWJsZVByb3BlcnRpZXMoKSAmJiAhby0+c3RydWN0dXJlKCktPmhhc0Fub255bW91c1Nsb3RzKCkg
JiYKLSAgICAgICAgIW8tPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkg
JiYgIW8tPnN0cnVjdHVyZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpICYmCi0gICAgICAg
ICFvLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKCkp
CisgICAgaWYgKCFvLT5zdHJ1Y3R1cmUoKS0+aGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoKSAm
JiAhby0+c3RydWN0dXJlKCktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKQorICAgICAgICAm
JiAhby0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkgJiYgIW8tPnN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAg
bnVtQ2FjaGVhYmxlU2xvdHMgPSBvLT5zdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlU2l6ZSgp
OwogICAgIAogICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGpzUHJvcGVydHlOYW1lSXRlcmF0
b3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yPigqZXhlYy0+aGVh
cCgpKSkgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihleGVjLCBwcm9wZXJ0eU5hbWVzLmRhdGEoKSwg
bnVtQ2FjaGVhYmxlU2xvdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCmluZGV4IDZkNWM3NWFhZjE3YmFhZmY4NWEw
ZmJmNWI2NWEyNGM1NTZmYTMzZDQuLjJmMmNjYjVjZjMxYWU4MWQ1MGY5MDc0NjMxZWI1YzBhZjFk
MGNhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1By
b3BlcnR5TmFtZUl0ZXJhdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3Vu
ZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmlu
ZGV4IDIyNTYzODY1MTc0MDU1ZGMzMDlhNTQ4N2FiNmM5MTlkYmQwZGYyYzQuLjFmOGQ4YjhmZWYz
ZDhiYzNjMWUyYjViMjAwMTZiMmE1OWY1YzUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
bmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZvaWQg
cHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggNjM4MjAzMWIyZGI1OTA3
YmU5YTMxMDZhYjg4OWFhNjE0NzRkMzZiNC4uN2IwZGNlMmY2MmNjNDdjYzVmYjM2NjMyM2ZmY2Rk
YTg1NjgyYjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBA
IC00MzgsNyArNDM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG8sIFR5cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oU3RyaW5n
VHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KSwgJnNfaW5mbyk7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IGQ1
N2M2YWMwNGNiZTJiMTc3YWY2Mzc5YWU5MmU2NGM3NTg4ZjIzYmYuLmMyNmRjN2ViYTE3ZmU5YmQ0
MWZhZTNjYWIwMTc1OTA2MjhiMDZjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAgICAgICAgIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggMTEzNDIzZTE2MzQ3M2U1
MjdhMmEzNGY1NTVlMmY1ZDU4ZmVkODg0NC4uY2Y0NGUwNGU3ODVkMjRlNDlhMGI5YzU1NzJkNWUx
NWMyYTdiNDkzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
cmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAg
ICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuaAppbmRleCAxMDFlMjY2N2E1ZTgyNzY4NzM5ODZmZjRkNzExOWNmZTkzOTIzY2M0Li43YzQ3
MDcyZjQ1OTAwMWUzMGNlNmY5ZWExNzk1OWQ1MGFmNTRjOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDZhNDczZGE4
YmI4NTZlMDA4YjcyZTM2ZTE5NGMzOGUyOGUwYzZjZTcuLjFhMGI0ZTA3ODYyYWY3MzJjM2U1Yzg0
Zjc3YjJkZTE4N2Y5MzZiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSgp
IHsgcmV0dXJuIG1fZXJyb3JTdHJ1Y3R1cmUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmluZGV4IDFlZGQwMTQ3NDJmOWVi
ZWIxZTQ1MmRkNjRkNDRjMTcwOGE1NThiYWUuLjg0YzRkMWZiNjI5NjgyYTU2NGYxYTFiNmY4MWRk
MmVkOTkxNzY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAg
ICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAg
ICAgICAgZW51bSB7IE5hTlZhbHVlLCBOZWdJbmZpbml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVl
LCBNaW5WYWx1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuaAppbmRleCBlNmNkNGNmMzgxY2M1OTI2NmMwNTU0NWM4YmEyNDQ5MWY1YWZjODY3Li5mMTEz
OGRhNzJkNGFlOGQwMDM3YWJkM2Q0YTliZWYzZjQyZGIyNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCA5YjU3NjJiOTVlMTA1MDM0
OTAzZDU4ZWNlNGFlMDMyODA4N2NjNjlhLi44NzAxZTkxMTdmYzgxZTlmOTMwZTBjZDgwYjUwYTBh
MzQxZmE1YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5jcHAKQEAgLTc2LDEzICs3NiwxMiBAQCBOdW1iZXJQcm90b3R5cGU6Ok51bWJl
clByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotdm9pZCBOdW1i
ZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBqc051bWJlcigwKSk7CiAKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwotICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBn
bG9iYWxPYmplY3QpOwogfQogCiBib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5oCmluZGV4IDIyNWI1MTU5NjcwYjBlYjMwNmU5OTYwYzY0YTcwYjNkMjEwZGU4
NmEuLjhlMTAwN2FjYmJjOGJjNmNhNTA1MjQxZGU2NjdmM2NkZTZkNDgwNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC0zOCwxMyAr
MzgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgTnVtYmVyT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IE51bWJlck9iamVjdDo6
QW5vbnltb3VzU2xvdENvdW50ICsgMTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIE51bWJlclBy
b3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXgg
MzhjNDhlODQ5ZmQzMTk2OWFlOWVlNzI5ZGE4YmVkZTliZmRhMTExNS4uNGMzMjAyODgxYjIwNGNj
NDEyOGY4NzQyOGU0MDdhMTEzYzI5NzBkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNTA4OWE1ZmZkYmY3NzNk
MGZmN2U4Njk5MjEzNWQ1NTVhYTI5NTc2NC4uZGIwMDg5YjdkZDllNWFlZTYyZTQ3NDJlMzA5ZDQw
MzYyYWQ5YWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCkBAIC02OSwxMSArNjksMTAgQEAgT2JqZWN0UHJvdG90eXBlOjpPYmpl
Y3RQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0dWN0dXJlKQogewogfQog
Ci12b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBPYmplY3RQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgT2JqZWN0UHJvdG90
eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggMTIwNzQwODk1MjUzN2U2
YWU3MTFjMjRhMTNiZmFhMjljZDcxODNmOS4uNGMxMmRmYjQ2NzkyZGMxYjhlMWVlMTMyMGU4ZDQy
NGJhNmI5ZmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmgKQEAgLTQwLDEyICs0MCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNOb25GaW5hbE9iamVjdDo6
U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNT
bG90Q291bnQgPSBKU05vbkZpbmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCiAg
ICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3Qq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAppbmRleCBlOTkwODE0M2Ux
ZTc4MDdkMGVmYzE4NWU5M2Q0MjYxNmYxMGE4ZjRiLi4wY2Y4MGEwNmUzMmE4MDZjZDRhMzg5NmJk
YzFiZjg5NzNjN2FmMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaApA
QCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksIDAsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksICZzX2luZm8pOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmgKaW5kZXggYjViMmIzMDI2NjE2OWU2ODZmNWY3YTJlYTBmNjZhM2Y4MmRkYzk5MC4uNWZhNzYx
ZWE2YjBhZmE3NTVkOTg0M2IzM2I2ZDNiNzgyYzYzOGEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC02Niw3ICs2Niw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmgKaW5kZXggNDlkZGQzN2IzMjM5NzIwYTY2NmQ2MDhiOWVlMjZjZDRkZmNmZjVmOS4uYzlmYjAw
YmYwOTA4M2MyZTkxNTc4NGNhNzNlMjYxNWE0ZTUyZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IGQ0NWIwYTI3YjA2ZDBjNDQxNTYz
MjQ2NDg4ZTJjOGRlNjlmMzY2ZTMuLmMzMmE5YmY4N2VlZjYzNWUwYTg2MmRmZmJkYzM3NTJlZmFl
NzdkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3Rv
dHlwZS5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAg
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Nv
cGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCmlu
ZGV4IDY5YjBiZDEyYjA5MzMwMjgzODA3MWU4NTgyMWJiNzg4NTYyNWMyNTMuLmRkNTAwNGI1MDBh
ODJjYWM0ZWVhZjJiYmM1NzViNzhmZDg0N2RmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TY29wZUNoYWluLmgKQEAgLTg2LDcgKzg2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgcHJpbnQoKTsKICNlbmRpZgogICAgICAgICAKLSAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0K
KyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykg
eyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJik7CiAgICAgICAg
IHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmlu
ZGV4IDRiYjc2YzA2ZDkxYWIxYjQ5OTYwMTY3Mjk3ZTRiZGQ0MzE2MjczMjQuLjRlNjE3NWQxYmE4
YTMxODc4MWYxNDUwYTNlZmNmYjczZmZhZTQyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQog
ICAgIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggOGFiYWQ5ZGVkMWI0NmY2ODQxNTM0MGE3MGUwY2M5ZDlm
M2VlMTBkNy4uODBlMzcxNjIwOTA1ZTA5OGJjMzFmZWVmMTI3MDdjYzc4Y2UwYjJkNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBA
IC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCAx
OGFmZTcyZGVkNGQ3OTFmMjY5MTAwYjY0ZmQ2NTIwZmRmYjc1OTRkLi5mZjkxZGIzMjRmOGMwYTg5
YzI3YjA4MTIxZTgwZDE5Mjg4OTMyMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZC5oCmluZGV4IGUyMWY5YTEwNjYwOTE2Y2ZlYjVhODEyNjk2NDFhZGYwNTRlZTE1ZTYu
LmMwNGVmZGUzZTFhZGQyNTdiZjdkYWE5NmIwY2Q2YjE4MTQ0ZTFjMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB8
IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKaW5kZXggNTkwMzkwOWI5NGQyZGU0NTgxYzQ3MzQwYjQwMDJkZjY4ODBhYjNhNC4uYTFjOWFh
OWYxY2I2ZTg1MDE0NTMyODEwYWUyM2MwYzg0YmJhNTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMzcsMTIgKzEzNywx
MSBAQCBTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBuYW1lQW5kTWVzc2FnZSk7CiB9CiAKLXZvaWQgU3RyaW5nUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTU3RyaW5nKiBuYW1lQW5kTWVzc2FnZSkKK3ZvaWQgU3RyaW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIG5h
bWVBbmRNZXNzYWdlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbmFtZUFuZE1lc3NhZ2UpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAK
LSAgICBwdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVj
dCk7CiAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIFN0
cmluZ0NvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBq
c051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCA2NTFm
OWFjM2RkNGY1N2RhYjcyOGJiMDUyNjFjNTc4OWIxOGM2MWQxLi40OWExZGEyMDhkMWUwYzE4Mjg1
NDMyNWI4NDQ0NGMyMzdiZTgzOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTUz
LDggKzUzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwogICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIENPTVBJTEVfQVNT
RVJUKCFTdHJpbmdPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCwgU3RyaW5nUHJvdG90eXBlX3N0
b21wc19vbl95b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEFub255bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCAyYmRm
NWZkMjljYzQ4ZGE1MDcxM2FjNjdlNDRiYjYyZjc3ZmM2NmE5Li5lMzVmMGM0ZDQ2ZmFkMjcyYzkz
NTc3ZTA0YWZjOTlmYmI2MGQxYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVtcFN0
YXRpc3RpY3MoKQogI2VuZGlmCiB9CiAKLVN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90
b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENv
dW50LCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKK1N0cnVjdHVyZTo6U3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgY29uc3QgQ2xhc3NJbmZv
KiBjbGFzc0luZm8pCiAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1
cmVTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX3R5cGVJbmZvKHR5cGVJbmZvKQogICAgICwgbV9n
bG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2JqZWN0LCBXcml0ZUJhcnJpZXI8
SlNHbG9iYWxPYmplY3Q+OjpNYXlCZU51bGwpCkBAIC0xNzMsNyArMTczLDYgQEAgU3RydWN0dXJl
OjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1YKICAgICAsIG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoZmFsc2Up
CiAgICAgLCBtX2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAgLCBtX3NwZWNpZmljRnVuY3Rp
b25UaHJhc2hDb3VudCgwKQotICAgICwgbV9hbm9ueW1vdXNTbG90Q291bnQoYW5vbnltb3VzU2xv
dENvdW50KQogICAgICwgbV9wcmV2ZW50RXh0ZW5zaW9ucyhmYWxzZSkKICAgICAsIG1fZGlkVHJh
bnNpdGlvbihmYWxzZSkKIHsKQEAgLTE5NCw3ICsxOTMsNiBAQCBTdHJ1Y3R1cmU6OlN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgLCBtX2hhc05vbkVudW1lcmFibGVQcm9w
ZXJ0aWVzKGZhbHNlKQogICAgICwgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cygwKQogICAgICwgbV9z
cGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQoMCkKLSAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50
KDApCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQogICAgICwgbV9kaWRUcmFuc2l0
aW9uKGZhbHNlKQogewpAQCAtMjEzLDcgKzIxMSw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlKiBwcmV2aW91cykKICAgICAs
IG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMocHJldmlvdXMtPm1faGFzTm9uRW51bWVyYWJs
ZVByb3BlcnRpZXMpCiAgICAgLCBtX2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAgLCBtX3Nw
ZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudChwcmV2aW91cy0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhy
YXNoQ291bnQpCi0gICAgLCBtX2Fub255bW91c1Nsb3RDb3VudChwcmV2aW91cy0+YW5vbnltb3Vz
U2xvdENvdW50KCkpCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKHByZXZpb3VzLT5tX3ByZXZl
bnRFeHRlbnNpb25zKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKHRydWUpCiB7CkBAIC0yNTMsNyAr
MjUwLDcgQEAgdm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXAoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhKQogCiAgICAgZm9yIChwdHJkaWZmX3QgaSA9IHN0cnVjdHVyZXMuc2l6
ZSgpIC0gMjsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgc3RydWN0dXJlID0gc3RydWN0dXJlc1tp
XTsKLSAgICAgICAgUHJvcGVydHlNYXBFbnRyeSBlbnRyeShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1
Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMuZ2V0KCksIG1fYW5vbnltb3VzU2xvdENvdW50ICsgc3Ry
dWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3VzLCBzdHJ1
Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpOworICAgICAgICBQcm9wZXJ0
eU1hcEVudHJ5IGVudHJ5KGdsb2JhbERhdGEsIHRoaXMsIHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2
aW91cy5nZXQoKSwgc3RydWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJ
blByZXZpb3VzLCBzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpOwog
ICAgICAgICBtX3Byb3BlcnR5VGFibGUtPmFkZChlbnRyeSk7CiAgICAgfQogfQpAQCAtMjkwLDkg
KzI4Nyw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4
aXN0aW5nU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0CiAgICAgICAgIGlmIChzcGVjaWZpY1Zh
bHVlSW5QcmV2aW91cyAmJiBzcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyAhPSBzcGVjaWZpY1ZhbHVl
KQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIEFTU0VSVChleGlzdGluZ1RyYW5zaXRp
b24tPm1fb2Zmc2V0ICE9IG5vT2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ID0gZXhpc3RpbmdUcmFu
c2l0aW9uLT5tX29mZnNldCArIGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291
bnQ7Ci0gICAgICAgIEFTU0VSVChvZmZzZXQgPj0gc3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RD
b3VudCk7Ci0gICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50ID09
IGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291bnQpOworICAgICAgICBvZmZz
ZXQgPSBleGlzdGluZ1RyYW5zaXRpb24tPm1fb2Zmc2V0OwogICAgICAgICByZXR1cm4gZXhpc3Rp
bmdUcmFuc2l0aW9uOwogICAgIH0KIApAQCAtMzIyLDggKzMxNyw2IEBAIFN0cnVjdHVyZSogU3Ry
dWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBT
dHJ1Y3R1cmUqCiAgICAgICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IHRvQ2FjaGVhYmxlRGlj
dGlvbmFyeVRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKICAgICAgICAgQVNTRVJU
KHN0cnVjdHVyZSAhPSB0cmFuc2l0aW9uKTsKICAgICAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+
cHV0U3BlY2lmaWNWYWx1ZShnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNw
ZWNpZmljVmFsdWUpOwotICAgICAgICBBU1NFUlQob2Zmc2V0ID49IHN0cnVjdHVyZS0+bV9hbm9u
eW1vdXNTbG90Q291bnQpOwotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Ns
b3RDb3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIGlm
ICh0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgPiB0cmFuc2l0aW9uLT5wcm9wZXJ0
eVN0b3JhZ2VDYXBhY2l0eSgpKQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+Z3Jvd1Byb3BlcnR5
U3RvcmFnZUNhcGFjaXR5KCk7CiAgICAgICAgIHJldHVybiB0cmFuc2l0aW9uOwpAQCAtMzUwLDEz
ICszNDMsMTAgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSoKICAgICB9CiAKICAgICBvZmZzZXQg
PSB0cmFuc2l0aW9uLT5wdXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwg
YXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1Y3R1
cmUtPm1fYW5vbnltb3VzU2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255
bW91c1Nsb3RDb3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAg
aWYgKHRyYW5zaXRpb24tPnByb3BlcnR5U3RvcmFnZVNpemUoKSA+IHRyYW5zaXRpb24tPnByb3Bl
cnR5U3RvcmFnZUNhcGFjaXR5KCkpCiAgICAgICAgIHRyYW5zaXRpb24tPmdyb3dQcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eSgpOwogCi0gICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBvZmZzZXQgLSBz
dHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50OwotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFu
b255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsK
KyAgICB0cmFuc2l0aW9uLT5tX29mZnNldCA9IG9mZnNldDsKICAgICBzdHJ1Y3R1cmUtPm1fdHJh
bnNpdGlvblRhYmxlLmFkZChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICByZXR1cm4gdHJh
bnNpdGlvbjsKIH0KQEAgLTM2OCw4ICszNTgsNiBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dQog
ICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IHRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5VHJhbnNp
dGlvbihnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwogCiAgICAgb2Zmc2V0ID0gdHJhbnNpdGlvbi0+
cmVtb3ZlKHByb3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBzdHJ1Y3R1cmUtPm1f
YW5vbnltb3VzU2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5tX2Fub255bW91c1Ns
b3RDb3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RDb3VudCk7CiAKICAgICByZXR1
cm4gdHJhbnNpdGlvbjsKIH0KQEAgLTM4NSw4ICszNzMsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVy
ZTo6Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdAogICAgIHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGds
b2JhbERhdGEpOwogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+
Y29weVByb3BlcnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbik7CiAgICAgdHJhbnNpdGlv
bi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwotICAgIAotICAgIEFTU0VSVChzdHJ1
Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RD
b3VudCgpKTsKKwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC00MDksOCArMzk2LDcg
QEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnUKICAgICAgICAgYm9vbCByZW1vdmVkID0gdHJhbnNp
dGlvbi0+ZGVzcGVjaWZ5RnVuY3Rpb24oZ2xvYmFsRGF0YSwgcmVwbGFjZUZ1bmN0aW9uKTsKICAg
ICAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVkKTsKICAgICB9Ci0gICAgCi0gICAg
QVNTRVJUKHN0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5v
bnltb3VzU2xvdENvdW50KCkpOworCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CiAKQEAgLTQy
Myw4ICs0MDksNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlv
bihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZQogICAgIHN0cnVjdHVyZS0+bWF0
ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwogICAgIHRyYW5zaXRp
b24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGUoZ2xvYmFs
RGF0YSwgdHJhbnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFi
bGUgPSB0cnVlOwotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3Vu
dCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKwogICAgIHJldHVybiB0
cmFuc2l0aW9uOwogfQogCkBAIC00MzgsOCArNDIzLDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6
OnRvRGljdGlvbmFyeVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1
cmUKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9w
ZXJ0eVRhYmxlKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwogICAgIHRyYW5zaXRpb24tPm1faXNQ
aW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICB0cmFuc2l0aW9uLT5tX2RpY3Rpb25hcnlL
aW5kID0ga2luZDsKLSAgICAKLSAgICBBU1NFUlQoc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291
bnQoKSA9PSB0cmFuc2l0aW9uLT5hbm9ueW1vdXNTbG90Q291bnQoKSk7CisKICAgICByZXR1cm4g
dHJhbnNpdGlvbjsKIH0KIApAQCAtNDkzLDcgKzQ3Nyw2IEBAIFN0cnVjdHVyZSogU3RydWN0dXJl
OjpwcmV2ZW50RXh0ZW5zaW9uc1RyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBT
dHJ1CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwogICAg
IHRyYW5zaXRpb24tPm1fcHJldmVudEV4dGVuc2lvbnMgPSB0cnVlOwogCi0gICAgQVNTRVJUKHN0
cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xv
dENvdW50KCkpOwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC01MzksNyArNTIyLDYg
QEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmoKICAgICBpZiAoaXNVbmNhY2hlYWJsZURpY3Rpb25h
cnkoKSkgewogICAgICAgICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxlKTsKIAotICAgICAgICB1bnNp
Z25lZCBhbm9ueW1vdXNTbG90Q291bnQgPSBtX2Fub255bW91c1Nsb3RDb3VudDsKICAgICAgICAg
c2l6ZV90IHByb3BlcnR5Q291bnQgPSBtX3Byb3BlcnR5VGFibGUtPnNpemUoKTsKICAgICAgICAg
VmVjdG9yPEpTVmFsdWU+IHZhbHVlcyhwcm9wZXJ0eUNvdW50KTsKIApAQCAtNTQ4LDEyICs1MzAs
MTIgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmoKICAgICAgICAgZm9yIChQcm9wZXJ0eVRhYmxl
OjppdGVyYXRvciBpdGVyID0gbV9wcm9wZXJ0eVRhYmxlLT5iZWdpbigpOyBpdGVyICE9IGVuZDsg
KytpdGVyLCArK2kpIHsKICAgICAgICAgICAgIHZhbHVlc1tpXSA9IG9iamVjdC0+Z2V0RGlyZWN0
T2Zmc2V0KGl0ZXItPm9mZnNldCk7CiAgICAgICAgICAgICAvLyBVcGRhdGUgcHJvcGVydHkgdGFi
bGUgdG8gaGF2ZSB0aGUgbmV3IHByb3BlcnR5IG9mZnNldHMKLSAgICAgICAgICAgIGl0ZXItPm9m
ZnNldCA9IGFub255bW91c1Nsb3RDb3VudCArIGk7CisgICAgICAgICAgICBpdGVyLT5vZmZzZXQg
PSBpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCBw
cm9wZXJ0eSB2YWx1ZXMgaW50byB0aGVpciBmaW5hbCBsb2NhdGlvbnMKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7IGkrKykKLSAgICAgICAgICAgIG9iamVj
dC0+cHV0RGlyZWN0T2Zmc2V0KGdsb2JhbERhdGEsIGFub255bW91c1Nsb3RDb3VudCArIGksIHZh
bHVlc1tpXSk7CisgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRh
LCBpLCB2YWx1ZXNbaV0pOwogCiAgICAgICAgIG1fcHJvcGVydHlUYWJsZS0+Y2xlYXJEZWxldGVk
T2Zmc2V0cygpOwogICAgIH0KQEAgLTU3NCw3ICs1NTYsNiBAQCBzaXplX3QgU3RydWN0dXJlOjph
ZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29u
c3QgSQogICAgIG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKIAogICAgIHNpemVfdCBv
ZmZzZXQgPSBwdXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgYXR0cmli
dXRlcywgc3BlY2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255bW91c1Ns
b3RDb3VudCk7CiAgICAgaWYgKHByb3BlcnR5U3RvcmFnZVNpemUoKSA+IHByb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5KCkpCiAgICAgICAgIGdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwogICAg
IHJldHVybiBvZmZzZXQ7CkBAIC01ODksNyArNTcwLDYgQEAgc2l6ZV90IFN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNv
bnMKIAogICAgIG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICBzaXplX3Qgb2Zm
c2V0ID0gcmVtb3ZlKHByb3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255
bW91c1Nsb3RDb3VudCk7CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIApAQCAtNjM3LDcgKzYxNyw2
IEBAIHNpemVfdCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cmlu
Z0ltcGwqIHByb3BlcnR5TmFtZSwgdW5zaWduCiAKICAgICBhdHRyaWJ1dGVzID0gZW50cnktPmF0
dHJpYnV0ZXM7CiAgICAgc3BlY2lmaWNWYWx1ZSA9IGVudHJ5LT5zcGVjaWZpY1ZhbHVlLmdldCgp
OwotICAgIEFTU0VSVChlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsKICAg
ICByZXR1cm4gZW50cnktPm9mZnNldDsKIH0KIApAQCAtNjg3LDggKzY2Niw3IEBAIHNpemVfdCBT
dHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25z
dCBJZGVudGlmaWVyJiBwCiAgICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+aGFzRGVsZXRlZE9mZnNl
dCgpKQogICAgICAgICBuZXdPZmZzZXQgPSBtX3Byb3BlcnR5VGFibGUtPmdldERlbGV0ZWRPZmZz
ZXQoKTsKICAgICBlbHNlCi0gICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+c2l6
ZSgpICsgbV9hbm9ueW1vdXNTbG90Q291bnQ7Ci0gICAgQVNTRVJUKG5ld09mZnNldCA+PSBtX2Fu
b255bW91c1Nsb3RDb3VudCk7CisgICAgICAgIG5ld09mZnNldCA9IG1fcHJvcGVydHlUYWJsZS0+
c2l6ZSgpOwogCiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGQoUHJvcGVydHlNYXBFbnRyeShnbG9i
YWxEYXRhLCB0aGlzLCByZXAsIG5ld09mZnNldCwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSkp
OwogCkBAIC03MTIsNyArNjkwLDYgQEAgc2l6ZV90IFN0cnVjdHVyZTo6cmVtb3ZlKGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAg
c2l6ZV90IG9mZnNldCA9IHBvc2l0aW9uLmZpcnN0LT5vZmZzZXQ7Ci0gICAgQVNTRVJUKG9mZnNl
dCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAKICAgICBtX3Byb3BlcnR5VGFibGUtPnJlbW92
ZShwb3NpdGlvbik7CiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGREZWxldGVkT2Zmc2V0KG9mZnNl
dCk7CkBAIC04NDQsNyArODIxLDYgQEAgdm9pZCBTdHJ1Y3R1cmU6OmNoZWNrQ29uc2lzdGVuY3ko
KQogICAgICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSBtX3Byb3BlcnR5VGFibGUt
PmVuZCgpOwogICAgICAgICBmb3IgKFByb3BlcnR5VGFibGU6Oml0ZXJhdG9yIGl0ZXIgPSBtX3By
b3BlcnR5VGFibGUtPmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAgICAgICAgICAg
IEFTU0VSVCghKGl0ZXItPmF0dHJpYnV0ZXMgJiBEb250RW51bSkpOwotICAgICAgICAgICAgQVNT
RVJUKGl0ZXItPm9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMGY0
ZjQ4YzgzNDEyYzEzNTBkMDkzNGMxYjVmZjYzMzc2ODI5NmZjMy4uMzAxYmE1ZjRhYjkwMzUyNDc2
ZDQyOTFhNGJlNDI4OGUxODk3ZGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKQEAgLTYyLDExICs2MiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFu
b255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCisgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYg
dHlwZUluZm8sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAg
ICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAg
QVNTRVJUKGNsYXNzSW5mbyk7Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5l
dyAoYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xv
dENvdW50LCBjbGFzc0luZm8pOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgdHlwZUluZm8sIGNsYXNzSW5mbyk7
CiAgICAgICAgICAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAg
ICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQpAQCAtMTMzLDcgKzEzMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ3Jvd1Byb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCk7CiAgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkgY29uc3Qg
eyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1cm4gbV9w
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eTsgfQotICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eVN0b3Jh
Z2VTaXplKCkgY29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2lu
Zm8pOyByZXR1cm4gbV9hbm9ueW1vdXNTbG90Q291bnQgKyAobV9wcm9wZXJ0eVRhYmxlID8gbV9w
cm9wZXJ0eVRhYmxlLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgOiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4obV9vZmZzZXQgKyAxKSk7IH0KKyAgICAgICAgdW5zaWduZWQgcHJvcGVydHlTdG9yYWdlU2l6
ZSgpIGNvbnN0IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsg
cmV0dXJuIChtX3Byb3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUtPnByb3BlcnR5U3RvcmFn
ZVNpemUoKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29mZnNldCArIDEpKTsgfQogICAgICAg
ICBib29sIGlzVXNpbmdJbmxpbmVTdG9yYWdlKCkgY29uc3Q7CiAKICAgICAgICAgc2l6ZV90IGdl
dChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpAQCAtMTUw
LDkgKzE1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHNldEhhc0dldHRlclNl
dHRlclByb3BlcnRpZXMoYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKSB7IG1faGFzR2V0
dGVyU2V0dGVyUHJvcGVydGllcyA9IGhhc0dldHRlclNldHRlclByb3BlcnRpZXM7IH0KIAogICAg
ICAgICBib29sIGhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNOb25FbnVtZXJhYmxlUHJvcGVydGllczsgfQotCi0gICAgICAgIGJvb2wgaGFzQW5vbnltb3Vz
U2xvdHMoKSBjb25zdCB7IHJldHVybiAhIW1fYW5vbnltb3VzU2xvdENvdW50OyB9Ci0gICAgICAg
IHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYW5vbnltb3Vz
U2xvdENvdW50OyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBtX3Byb3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUtPmlzRW1wdHkoKSA6IG1fb2Zm
c2V0ID09IG5vT2Zmc2V0OyB9CiAKQEAgLTE5MSw3ICsxODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9i
amVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIHVuc2lnbmVkIGFub255
bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CisgICAgICAgIFN0cnVjdHVyZShKU0ds
b2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBl
SW5mbyYsIGNvbnN0IENsYXNzSW5mbyopOwogICAgICAgICBTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
Jik7CiAgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBjb25zdCBTdHJ1Y3R1cmUqKTsK
IApAQCAtMjc4LDEwICsyNzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQg
bV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA6IDc7CiAjZW5kaWYKICAgICAgICAgdW5zaWduZWQgbV9z
cGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQgOiAyOwotICAgICAgICB1bnNpZ25lZCBtX2Fub255
bW91c1Nsb3RDb3VudCA6IDU7CiAgICAgICAgIHVuc2lnbmVkIG1fcHJldmVudEV4dGVuc2lvbnMg
OiAxOwogICAgICAgICB1bnNpZ25lZCBtX2RpZFRyYW5zaXRpb24gOiAxOwotICAgICAgICAvLyAz
IGZyZWUgYml0cworICAgICAgICAvLyA4IGZyZWUgYml0cwogICAgIH07CiAKICAgICBpbmxpbmUg
c2l6ZV90IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQpAQCAtMjkyLDcgKzI4OCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAgICAgIFByb3BlcnR5TWFwRW50
cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS5pbXBsKCkpLmZp
cnN0OwotICAgICAgICBBU1NFUlQoIWVudHJ5IHx8IGVudHJ5LT5vZmZzZXQgPj0gbV9hbm9ueW1v
dXNTbG90Q291bnQpOwogICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS0+b2Zmc2V0IDogbm90
Rm91bmQ7CiAgICAgfQogCkBAIC0zMDQsNyArMjk5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICByZXR1cm4gbm90Rm91bmQ7CiAKICAgICAgICAgUHJvcGVydHlNYXBFbnRyeSogZW50
cnkgPSBtX3Byb3BlcnR5VGFibGUtPmZpbmRXaXRoU3RyaW5nKG5hbWUuaW1wbCgpKS5maXJzdDsK
LSAgICAgICAgQVNTRVJUKCFlbnRyeSB8fCBlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnltb3VzU2xv
dENvdW50KTsKICAgICAgICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IG5vdEZvdW5k
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNo
YWluLmgKaW5kZXggYzhlNDJiMjZhNzJjOTZjZDAzYzQ2NjQ2YzYyMDIxNDRiZTUwYjM2Yy4uY2Rk
NjRlZjZhNjFhZTQxNDQwMzNiMDdmYzFlYzE5MjcwMzFhZGQwYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCkBAIC01NCw3ICs1NCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaGVhZCgpIHsg
cmV0dXJuIG1fdmVjdG9yLmdldCgpOyB9CiAgICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90
VmlzaXRvciYpOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuKSwgMCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3Vu
ZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsgfQogICAgICAgICAKICAg
ICAgICAgc3RhdGljIENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmlu
ZGV4IDE4NGJiNzk3MGY0NTRmM2Y2NThlMmYxZGYzZTBkM2YwNzNmMmQ4MzYuLjNkNzFlNTQ2ZWFk
ODM2YzE2MTM1YjRmMzFmMjNiNzhiMWM5NDEwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20g
anNvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02Nzg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERvbid0IG5lZWQgYW4gYW5vbnltb3VzIHNsb3QgY291bnQgYW55bW9yZQorCisgICAgICAgICog
VXNlck9iamVjdEltcC5oOgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJl
KToKKwogMjAxMS0wOS0wOSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMg
aW4gSlNDZWxsIGhpZXJhcmNoeSAoNS83KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmgKaW5kZXggMjZjZWVkY2RjMDUzMzNmMmIxMTcwMGNlMjFmNmFlMzdmNzJiNjE5YS4uNDNmZjBk
YThkNzU2YWZlNmZmM2Q3Yzg2MzlhOWQzMTNhYWQwNWJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggOGIxOGE5ZDA0OWEzN2Y4YTRiNGZmMjkzMmI2YzIyYjc2ZTViMTUy
MC4uMzRkZTQ5ZTM5ZDEwOWYyOTJlOWFhNzgyMDZiYzdkM2VhODg2MjFkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDkwIEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20g
anNvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02Nzg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBhbGwgdXNlIG9mIGFub255bW91cyBzbG90cywgdGhpcyByZXF1aXJlZCBtb2RpZnlp
bmcKKyAgICAgICAgYmluZGluZ3MgZ2VuZXJhdGlvbiB0byBhZGQgbWVtYmVyIHZhcmlhYmxlcyBm
b3IgY2FjaGVkIGF0dHJpYnV0ZXMsCisgICAgICAgIGFuZCBvdmVycmlkZSB2aXNpdENoaWxkcmVu
IHdpdGggdGhlIG5lY2Vzc2FyeSBsb2dpYyB0byBtYXJrIHRob3NlCisgICAgICAgIG5ldyBtZW1i
ZXJzLgorCisgICAgICAgIEkgYWRkZWQgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cyBmb3IgdGhl
c2UgdmFsdWVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01Db25zdHJ1Y3Rvck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9i
YWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdl
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6ZGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNP
cHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRl
eHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFy
YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjpjcmVhdGVT
dHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OnZpc2l0Q2hpbGRyZW4pOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE9iajo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9ialByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6
OmNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJ
bnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9j
L0NSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvYy9jX2luc3RhbmNlLmNwcDoK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAg
IChKYXZhUnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uv
am5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2
YVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMv
T2JqQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iakNSdW50aW1l
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAg
ICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2Jq
ZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDExLTA5LTA5ICBFcmlrIEFydmlkc3NvbiAgPGFy
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSBFbGVtZW50LmNvbnRhaW5zIHRvIE5vZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5k
ZXggYTdhOTA3ZGY0Y2FiZDczMWRmZjFjYjk1ZDA4ZjVjY2E5ZjNjNzEzOS4uMTllNjQ1ZmJkZmE3
OGE0Zjk0ZTBlZGQzNGFmNzk1Mjk4NDE5NzJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYzFjODM3
ZWUyNzAwMmZiNDkwNjA5ZGIxMTkzODljMTBiYzgxOWU0OC4uYWM4ZTk4MDhhNDVjYjQyYmZmM2U2
MzViYmUyNWZhN2UzMGFmYTEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1Ymxp
YzoKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAg
IH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oCmluZGV4IDlhODM4YmY5YTgzYzQ5YzFjNDFlM2NiMjc3NTEwOGFjNDk3
ZjAwODEuLjAxNGI1NjliYTJiMzFlOTUzOWQ3NmU1MzViMDVlOTc2ZjQzYmJlZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNzIsNyAr
NzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggZjc3MTgwODdjZTU4
MzBhNmU1YzY2NzE5YTU4NzgwYmEzNmI5MDY0Yi4uYTJjNDc4NTUzMjg5N2UwNjE4YzE5NTkwNDcy
OTA4M2Y3NzM4MWQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmgKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzUHJvZmlsaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggODdkMDI2ZGJlMDU4Y2Zm
YzE4NmU1OTUyNTAzYjgyNTkzMDU3M2Q0MC4uZmU4YTRmZGUwOTE2MjMxZmQzN2Q2M2ZjYTE0OGQz
ODdiY2RlMzg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
U2hlbGwuaApAQCAtNjQsNyArNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAg
ICAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCAyZGEzZmEwMzRk
NmY2MWI5OGZhMDhjZDgzNTZhNmQzNTM0YjM4N2M5Li4zNjg1Yzg5ZTY4NDg4ZjNlMWQ4OWNlYWEz
NDhjOWIxZWI0OTg4NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKaW5kZXggM2M5MzUxYzc0ZmE0MGM4YTQxY2E3MGJjOTg2
YWIyOGVlMmNlZDAxOC4uMzVjNDQzNDA2NDE2MjNjYTQwYjU1YTYwYjY1OTU4ZTliYWI3NGY3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgK
QEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBK
U0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRleCBmYjAzNWM1ZTIwNzZlYjU5
NDExYTExYTU2NDQzZmVlYjRjZjZmOTFhLi44YmU4MWJlY2NiZDRlZWM0Yjk2NjU2M2QwYjhmMjIz
NGQzNzJhMTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNz
YWdlRXZlbnRDdXN0b20uY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7
Ci0gICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBnZXRBbm9ueW1vdXNWYWx1ZShKU01lc3Nh
Z2VFdmVudDo6ZGF0YVNsb3QpKQorICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRh
LmdldCgpKQogICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CiAKICAgICBNZXNzYWdlRXZlbnQq
IGV2ZW50ID0gc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oaW1wbCgpKTsKQEAgLTczLDcgKzcz
LDcgQEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
CiAgICAgfQogCiAgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8gZGVz
ZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgotICAgIGNvbnN0X2Nhc3Q8SlNNZXNzYWdlRXZlbnQq
Pih0aGlzKS0+cHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBKU01lc3NhZ2VF
dmVudDo6ZGF0YVNsb3QsIHJlc3VsdCk7CisgICAgY29uc3RfY2FzdDxKU01lc3NhZ2VFdmVudCo+
KHRoaXMpLT5tX2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgSlNDOjpKU1ZhbHVlIEpT
TWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICByZXN1bHQgPSBzZXJpYWxpemVkVmFsdWUtPmRlc2VyaWFsaXplKGV4ZWMsIGdsb2JhbE9i
amVjdCgpLCBOb25UaHJvd2luZyk7CiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBqc051bGwo
KTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIEpTTWVzc2FnZUV2
ZW50OjpkYXRhU2xvdCwgcmVzdWx0KTsKKyAgICBtX2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgcmVzdWx0KTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDY5
MzlmYmY4Yjg5MWZkZTMwMjU5OGFkNjZjNTcwOGJhZGExNzNjZmQuLjM5MjYxYTA5N2Q1NThlY2Qw
OTA0NmFhNjgyMTA2MWEzOGJlODhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaApp
bmRleCAwYjY2OGRmNzBlNWM5ZGYyN2Q4ODNiMmEwZTFkYjU2N2QwNmJlN2Q2Li5iMDg2MzM2YzQ0
MmQ1OGRkMzhlN2E2MzliNGJiNjBmOGFkZjBiZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWYyNGI5NGQyNzkzOTYz
OTIxM2E0YTI3OTUxNjkyMzgwMDllN2RmZS4uZTg5ZmIzZmVkNDNkMGU1ZDQzYjYyOWI0OWFjYTcx
Mjc5NWU3ZDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTgwMywxNSArODAzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxu
IiAuCiAgICAgICAgICIgICAge1xuIiAuCi0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgog
ICAgICAgICAiICAgIH1cblxuIik7CiAKLSAgICAjIHZpc2l0IGZ1bmN0aW9uCi0gICAgaWYgKCRu
ZWVkc01hcmtDaGlsZHJlbikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImKTtcblxuIik7Ci0gICAg
ICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIn0gPSAxOwot
ICAgIH0KLQogICAgICMgQ3VzdG9tIHB1c2hFdmVudEhhbmRsZXJTY29wZSBmdW5jdGlvbgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBw
dXNoRXZlbnRIYW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2Rl
KikgY29uc3Q7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVB1c2hFdmVudEhhbmRsZXJTY29wZSJ9OwogCkBAIC04NjgsMTYgKzg2MiwxOSBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKICAgICAgICAgICAgICRudW1DdXN0b21BdHRyaWJ1dGVzKysgaWYgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0gfHwg
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tR2V0
dGVyIn07CiAgICAgICAgICAgICAkbnVtQ3VzdG9tQXR0cmlidXRlcysrIGlmICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVNldHRlciJ9IHx8ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ0N1c3RvbVNldHRlciJ9
OwogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgIiAuICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZSAuICJTbG90ID0gJG51bUNhY2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1v
dXNTbG90Q291bnQ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4gbV8iIC4gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lIC4gIjtcbiIpOwogICAgICAgICAgICAgICAgICRudW1DYWNoZWRBdHRyaWJ1
dGVzKys7CisgICAgICAgICAgICAgICAgJG5lZWRzTWFya0NoaWxkcmVuID0gMTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+
IDApIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB1c2luZyAkcGFyZW50Q2xh
c3NOYW1lIiAuICI6OnB1dEFub255bW91c1ZhbHVlO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdXNpbmcgJHBhcmVudENsYXNzTmFtZSIgLiAiOjpnZXRBbm9ueW1vdXNW
YWx1ZTtcbiIpOworICAgICMgdmlzaXQgZnVuY3Rpb24KKyAgICBpZiAoJG5lZWRzTWFya0NoaWxk
cmVuKSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHZp
c2l0Q2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYpO1xuXG4iKTsKKyAgICAgICAgJHN0cnVjdHVy
ZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9IDE7CiAgICAgfQorCiAgICAg
aWYgKCRudW1DdXN0b21BdHRyaWJ1dGVzID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiXG4gICAgLy8gQ3VzdG9tIGF0dHJpYnV0ZXNcbiIpOwogCkBAIC05MjEsMTIgKzkxOCw2
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihCYXNlOjppbXBsKCkpO1xu
Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuIik7CiAgICAgfQotICAg
IAotICAgICMgYW5vbnltb3VzIHNsb3RzCi0gICAgaWYgKCRudW1DYWNoZWRBdHRyaWJ1dGVzKSB7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKLSAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xv
dENvdW50ID0gJG51bUNhY2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7
XG4iKTsKLSAgICB9CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7
CiAgICAgIyBDb25zdHJ1Y3RvcgpAQCAtMTA0Niw3ICsxMDM3LDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KVxuIiAuCiAgICAgICAgICIgICAge1xuIiAuCi0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIg
LgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0xNTMzLDIzICsxNTI0LDggQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpO1xuIik7Ci0gICAgaWYgKCRudW1DYWNoZWRB
dHRyaWJ1dGVzID4gMCkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBmb3IgKHVu
c2lnbmVkIGkgPSBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7IGkgPCBBbm9ueW1vdXNTbG90Q291
bnQ7IGkrKylcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0QW5v
bnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGksIEpTVmFsdWUoKSk7XG4i
KTsKLSAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCi0gICAgaWYgKCRu
ZWVkc01hcmtDaGlsZHJlbiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tTWFya0Z1bmN0aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7
Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZs
YWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhv
dXRTZXR0aW5nRmxhZyk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNT
RVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7XG4i
KTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2
aXNpdG9yKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXBsKCktPnZp
c2l0SlNFdmVudExpc3RlbmVycyh2aXNpdG9yKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7Ci0gICAgfQotCiAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJFeHRlbmRzRE9NR2xvYmFsT2JqZWN0In0pIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CkBAIC0xNjE4LDYgKzE1OTQsMTAgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1l
fSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFz
ZSkpO1xuIik7CiAKKyAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0cmlidXRlIn0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgJG5lZWRzTWFya0NoaWxkcmVuID0gMTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAg
ICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21h
aW5TZWN1cml0eSJ9ICYmIAogICAgICAgICAgICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tEb21haW5TZWN1cml0eSJ9
ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5T25HZXQifSkgewpAQCAt
MTY2Myw3ICsxNjQzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAkY2FjaGVJbmRl
eCA9ICRjdXJyZW50Q2FjaGVkQXR0cmlidXRlOwogICAgICAgICAgICAgICAgICAgICAgICAgJGN1
cnJlbnRDYWNoZWRBdHRyaWJ1dGUrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gY2FzdGVkVGhpcy0+Z2V0
QW5vbnltb3VzVmFsdWUoIiAuICRjbGFzc05hbWUgLiAiOjoiIC4gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lIC4gIlNsb3QpKVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1fIiAuICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIuZ2V0KCkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC0xNjg4LDcgKzE2NjgsNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5n
bG9iYWxEYXRhKCksICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+bmFtZSAuICJTbG90LCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5uYW1lIC4gIi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCByZXN1bHQpO1xuIikgaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJp
YnV0ZSJ9KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuIHJlc3VsdDtcbiIpOwogCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTIxOTIsNiAr
MjE3Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAg
IEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0aW9uLCAkZnVuY3Rpb25T
dHJpbmcsICRwYXJhbUluZGV4LCAiICAgICIsICRzdmdQcm9wZXJ0eVR5cGUsICRpbXBsQ2xhc3NO
YW1lKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAogICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+
e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDEgJiYgJGZ1bmN0aW9u
LT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSkgewpAQCAtMjIw
Myw2ICsyMTg0LDI5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcblxuIik7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4gJiYgISRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojp2aXNpdENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdG
bGFnKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKHN0
cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlz
aXRvcik7XG4iKTsKKyAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJFdmVudFRhcmdldCJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW1wbCgpLT52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7XG4iKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKKyAg
ICAgICAgICAgICAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAg
ICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRfOworICAgICAgICAgICAgICAgICAgICBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0
cmlidXRlIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmIChtXyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiKVxuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdmlzaXRvci5h
cHBlbmQoJm1fIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgIH0KKyAgICAgICAg
ZGllICJDYW4ndCBnZW5lcmF0ZSBiaW5kaW5nIGZvciBjbGFzcyB3aXRoIGNhY2hlZCBhdHRyaWJ1
dGUgYW5kIGN1c3RvbSBtYXJrLiIgaWYgKCgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIGFuZCAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTWFya0Z1bmN0aW9uIn0pKTsK
ICAgICB9CiAKICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDApIHsKQEAgLTMxMTcsNyArMzEyMSw3
IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KIAogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCAmc19pbmZvKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsK
IAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInByb3RlY3RlZDpcbiIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAppbmRleCAyNmRlMTgzZmViN2M2YTQzY2FlZGI5Y2VkZWM0ZjJhNDBkZTZmYmIyLi41
MDQ3YzYxMzYzNjAyYzNmNzNjYmY3YmM5NmJmNDU5MDI5YjRmZDk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiBw
cm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlND
OjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5j
ZSB8IERPTUNvbnN0cnVjdG9yT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aAppbmRleCBiNzRkNjkxODEwMGJjZjg0ZGUwYWU4MTQ0ZjUyYWUwY2EyODU3ZDYwLi40MzJmNzNi
NzRhYTM4MWQxODFhN2MxMzE5MjI1YWFhY2ZlMWVmZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBA
IC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCA0YjU4NTZlZGU0MDYyZjkwMDQ4MGZhYzk5YjI3
MDAyZDA4ODVhMzg1Li4zMjZiYjJiMTc4YTg5NjhhNGUzYzI3ZTJkYzY2MDE2ZTcyOWM0NzlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZv
OwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0
b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgKaW5kZXggZTM1NWFkODAwODhmYzZkNTg0ZDdlNWRlMjI5NzBhYWQ1ZDdmNmJl
ZC4uZDRkNWY2NTQxOWVkZDkwZWU5NjY1MGM5N2IxOTJlOGZkNzg1MDNjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGQyZDYzN2U4YWVmMDQ1NjI3
NjM5YmZkNGMxZjBjM2EwZTA1ZTUwOTcuLjNiYjMwN2U2NzliYTkyMzM0M2MxMTUyMzcyZGY0MTFj
YzMzNTliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xMTYsNiArMTE2LDggQEAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogI2lmIEVOQUJMRShDb25kaXRp
b24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKICAgICB7ICJjb25kaXRpb25hbEF0dHI2IiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yIFRIVU5LX0dFTkVSQVRPUigwKSB9LAog
I2VuZGlmCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDYWNoZWRBdHRyaWJ1dGUxKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCisg
ICAgeyAiY2FjaGVkQXR0cmlidXRlMiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRB
dHRyaWJ1dGUyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiZGVz
Y3JpcHRpb24iLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRGVzY3JpcHRpb24pLCAoaW50cHRy
X3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJpZCIsIERvbnREZWxldGUsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSWQp
LCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqSWQgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAi
aGFzaCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpIYXNoKSwgKGludHB0cl90KTAgVEhVTktf
R0VORVJBVE9SKDApIH0sCkBAIC0xMjQsNyArMTI2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogfTsKIAogI3VuZGVmIFRIVU5LX0dFTkVS
QVRPUgotc3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxl
ID0geyAxMzQsIDEyNywgSlNUZXN0T2JqVGFibGVWYWx1ZXMsIDAgfTsKK3N0YXRpYyBKU0NfQ09O
U1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsgMTM1LCAxMjcsIEpTVGVz
dE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLwog
I2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2Vu
ZXJhdG9yCkBAIC0xNzksNyArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6
OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQog
cHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFu
Y2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CkBAIC02NzAsNiArNjcy
LDMyIEBAIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwKIAogI2VuZGlmCiAKK0pTVmFsdWUganNUZXN0
T2JqQ2FjaGVkQXR0cmlidXRlMShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOworICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9jYWNoZWRBdHRyaWJ1dGUxLmdl
dCgpKQorICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgVGVzdE9iaiogaW1wID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTEoKSA/IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgpLT5k
ZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSkgOiBqc051bGwoKTsK
KyAgICBtX2NhY2hlZEF0dHJpYnV0ZTEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVz
dWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKK0pTVmFsdWUganNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50
aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVz
dE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAg
IGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9jYWNoZWRBdHRyaWJ1dGUyLmdldCgpKQorICAg
ICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpbXAt
PmNhY2hlZEF0dHJpYnV0ZTIoKSA/IGltcC0+Y2FjaGVkQXR0cmlidXRlMigpLT5kZXNlcmlhbGl6
ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSkgOiBqc051bGwoKTsKKyAgICBtX2Nh
Y2hlZEF0dHJpYnV0ZTIuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCisKIEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVj
dChzbG90QmFzZSkpOwpAQCAtMTgxNSw2ICsxODQzLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25h
bChFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCit2b2lkIEpTVGVz
dE9iajo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0
cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5m
bygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2
aXNpdG9yKTsKKyAgICBpZiAobV9jYWNoZWRBdHRyaWJ1dGUxKQorICAgICAgICB2aXNpdG9yLmFw
cGVuZCgmbV9jYWNoZWRBdHRyaWJ1dGUxKTsKKyAgICBpZiAobV9jYWNoZWRBdHRyaWJ1dGUyKQor
ICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9jYWNoZWRBdHRyaWJ1dGUyKTsKK30KKwogLy8gQ29u
c3RhbnQgZ2V0dGVycwogCiBKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzAoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA0ZDBmNzk3YzNk
YzUyNTliN2JmYzE5YTAyOTg3OTc0NjllMTdmM2JmLi5mYjc0YjU2MDk5NzllMjY2NDM1ZDdkNTQ1
OWJkNzY2YWMwMzQxOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC00NSwxMCArNDUsMTQgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKKyAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRl
MTsKKyAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRl
MjsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJik7CisK
IAogICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCiAgICAgSlNDOjpKU1ZhbHVlIGN1c3RvbUF0dHIo
SlNDOjpFeGVjU3RhdGUqKSBjb25zdDsKQEAgLTYzLDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8VGVzdE9iaj4gbV9pbXBsOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE9iaihKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxUZXN0T2JqPik7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwog
fTsKIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRlc3RPYmoqKTsKQEAgLTgzLDEzICs4NywxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEpTVGVzdE9ialByb3RvdHlwZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsgfQogcHJvdGVjdGVkOgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBCYXNlOjpTdHJ1Y3R1cmVGbGFn
czsKIH07CiAKIC8vIEZ1bmN0aW9ucwpAQCAtMjAxLDYgKzIwNSw4IEBAIEpTQzo6SlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUsCiB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1Zh
bHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYp
OworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogSlNDOjpKU1ZhbHVlIGpz
VGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpJZChKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVz
dE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwCmluZGV4IGIwNzkzMzk4MWJjODM2MDYwMmZlMjM5YTcxZmRiM2NlOTA1YWIzYWQuLjczMmIy
NzI4MWEwOGE1MmI3MjA3ZDFmZDIyNmEzODhkZjJmODJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC04MCw3ICs4
MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwog
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDZkZmE3ODEwZWMzNjMzODE5NmE3YmNmOTQz
YjYyYWM4NTJhY2U5OGYuLmMxNGRkOTBiNGZiNjY0ZTQyNmFjZTI3YjMwNjA2OGZlNWRhMzgwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3Rh
dGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDRhY2FlNmE5Mzhl
ODBlYzAyZGVjMDRhMDgxMGU3NzMyNTk2NTgzODAuLjc1YjQ5YWJjMjg0MzE1ZTMxNTcwYjk2OWJi
MTU5Y2QyYTE4N2M5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwKQEAgLTE0Niw2ICsxNDYsMTEgQEAgbW9kdWxlIHRlc3QgewogICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMl0gVGVzdE9i
amVjdENDb25zdHJ1Y3RvciBjb25kaXRpb25hbEF0dHI2OwogCiAjaWYgZGVmaW5lZChURVNUSU5H
X1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVkQXR0cmlidXRlMTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIGFueSBjYWNoZWRBdHRyaWJ1dGUyOworI2VuZGlm
CisKKyNpZiBkZWZpbmVkKFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElOR19KUykKICAgICAg
ICAgLy8gT3ZlcmxvYWRzCiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0
T2JqIG9iakFyZywgaW4gRE9NU3RyaW5nIHN0ckFyZyk7CiAgICAgICAgIHZvaWQgICAgb3Zlcmxv
YWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFyZywgaW4gW09wdGlvbmFsXSBsb25nIGludEFyZyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwCmluZGV4IDU2ZDZjN2E0ODM4YmQ4ODUxMDQ0MDAwNGE5NGMyMWMxMGYwOGU3OGUu
LjhkZDY2NjJmNDE0MmVhNzIyZTY0NjFiZTQ1MTgwODFmZTg1ZTZiNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBA
IC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhUZXN0Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOGFu
eS5oIgogI2luY2x1ZGUgIlY4aW50LmgiCiAjaW5jbHVkZSAiVjhsb2cuaCIKICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CkBAIC01ODAsNiArNTgxLDM0IEBAIHN0YXRpYyB2b2lkIGNvbmRpdGlvbmFs
QXR0cjNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6
CiAKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiAK
K3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
Cit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUxLl9nZXQiKTsK
KyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwor
ICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgpOworICAgIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0
TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICBp
ZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0Lmdl
dCgpKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0
dHJpYnV0ZTEiLCB3cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK3N0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7
CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUyLl9nZXQiKTsKKyAg
ICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAg
IFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMigpOworICAgIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFw
KCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICBpZiAo
d3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgp
KTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9NV3Jh
cHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJp
YnV0ZTIiLCB3cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdFJ1bnRpbWVBdHRyMS5fZ2V0
Iik7CkBAIC0xMjc3LDYgKzEzMDYsMTAgQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUg
VGVzdE9iakF0dHJzW10gPSB7CiAgICAgLy8gQXR0cmlidXRlICdjb25kaXRpb25hbEF0dHI2JyAo
VHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsJykKICAgICB7ImNvbmRpdGlv
bmFsQXR0cjYiLCBUZXN0T2JqSW50ZXJuYWw6OlRlc3RPYmpDb25zdHJ1Y3RvckdldHRlciwgMCwg
JlY4VGVzdE9iamVjdEM6OmluZm8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6
REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6OlJlYWRPbmx5
KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQorICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVkQXR0cmlidXRlMScg
KFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQor
ICAgIHsiY2FjaGVkQXR0cmlidXRlMSIsIFRlc3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRl
MUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVk
QXR0cmlidXRlMicgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRB
dHRyaWJ1dGUnKQorICAgIHsiY2FjaGVkQXR0cmlidXRlMiIsIFRlc3RPYmpJbnRlcm5hbDo6Y2Fj
aGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJp
YnV0ZSAnZGVzY3JpcHRpb24nIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAn
JykKICAgICB7ImRlc2NyaXB0aW9uIiwgVGVzdE9iakludGVybmFsOjpkZXNjcmlwdGlvbkF0dHJH
ZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnaWQnIChUeXBlOiAn
YXR0cmlidXRlJyBFeHRBdHRyOiAnJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9i
amVjdC5oCmluZGV4IGVmMTljOGE2ZWIzMmUzNGU4N2E2MTA3OGI4NDVlMGU2MDBlN2IzMzYuLmY5
ODRhNWNhOGE3ZWJhNmIzNDc4MzBlMTZjMTZhYmQzOGJlMmQwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRleCBmY2QyNDJhNWE5YzU4ZWI5N2Yy
ODdjYzA3YTlhOGEzZGIyODlhNGMxLi5kZTYxNDQ5NTE3MmRjYmRhNWVhOTNiMDEwNDEwMTRjMjYx
YzY3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcApAQCAtMTIzLDcg
KzEyMyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsK
ICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDdlNjlm
YmViNTdlMDhjMmIxMDVhYzMzNmU2NzI0ODNhYzVmOWEzYWUuLjM5NzIwMDk3ZDVhMmEyODc1ZjM3
MGM5ZmIwNGVjMDI2YzEwNjAwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhUnVudGltZU9iamVjdC5oCmluZGV4IGJiMTc5Mzg2NGJhMzM1MjAxZmU4MDEzOWVh
ZmFkMzNkZjcyNzYxMzguLjhmYTQ1MmVlOGRiNzRkNjlhNzJlOTE2NjhmZTI4MWRmNDcwZGU4M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmpl
Y3QuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXggMDM0MGMwNTFiZTliMTBjZWIxNDhmNTg0
MDJmZmRjZmZiYjJiZDE5Yi4uZGQ3MzM5MGQ3N2RlMWE5MzhhY2VjODFmYTMyMWE1NmI1NDg0NDk1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19pbnN0YW5jZS5tbQppbmRleCBmMmQ3OWE2NTEzYmQ3NGI5YjgxYTE1MjljNDM3Nzk3OWZj
MjdlZWRkLi5hNmFhZjYwNTM4ZGExMDY3NzY0OTk2YjAyMjlkZjY4NTZmZGMyZjY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTE4Myw3ICsxODMs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsK
ICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggMzQ2NDg0OGFiZGYyNjI5ODIzMWRm
MmI3NmZiNThmNTI3YTE5ZDBkYS4uODM4MGI5ZGFhMTIzOTU0NDRhMWYwYjFhYjczZjM1YWJjYjUx
MTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEx
NCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3Rh
bmNlLmNwcAppbmRleCBmYzFhMzQ2M2M4MDQxZmQzOTgwY2Y0Yzg1ZWJlNTFhYTYzYWJhNDZkLi42
YTQ4YjE0NmUwZjY1ZWRjZWUyMDk2ZGZjZDMwZDFiMjdhNWFjM2E1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXgg
Njg3NDFiNDliZGQ4NWEyOTM5ZWRlYzMzM2Y0Njg4NjQwZTkxNTZjYS4uZjBiMjZhOGM1Y2Q4Nzk3
YjdiYmQ1OTg5OWQ4ZjNhZDNhNmM0ZmZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9waXhtYXBydW50aW1lLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCAgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggOGI2ZjAzNGRjMzFmNTBkOTli
ZDFlMmQ4ZTNmZWM4NmE2MjJmMWViZC4uMjRkZTI1NWMxNDgxZTQ2NmE0Yzc3NzM3MTBjZmVlNDUz
ZTViODJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNDAsNyAr
MTQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApp
bmRleCA2Y2I4ZWIzM2Q3ZGM2NWIwZDQzNmEwYWJjZmEwZmZhZDhmYWM4ODVkLi5hMDg3N2EwNjJk
ZDY5OWMxNzVkZTE2ZGYzY2FmYWFkZjEwY2M4ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaAppbmRleCA0NGIwODdhZDJiN2Q4MmFjZWRhYTgyZmFkMDNkZDFi
NjhlMjg1OTY3Li5kMWFiOTlkZTdlYjAyZGYyNGM0ZjA0YjQ1MjY2Zjg2NGNiMGYyMTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDg3YjdmNzA2
Njc5YTI2NWMyODVlN2E2NWE5YjZhOWE4NGMwNjJlOTguLmEyYzkyODg4MzdiZWMzZjJkZmVkM2Rj
OTRjNmNkZTYyM2Y0OTEwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBhOTAwODIw
OThlOGY2NzVlOWY2MzMwY2M3Zjk4MzgxNjZiZDI5MmY0Li4zMmM0MWVmNzZhN2MxMzQwYTZkZjkw
YWNlNGFkMGVhNGFkZDM5YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTEtMDktMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1v
dmUgc3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Ugb2Yg
QW5vbnltb3VzU2xvdENvdW50CisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eUluc3Rh
bmNlLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwog
MjAxMS0wOS0wOSAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLnto
fGNwcH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3Rh
bmNlLm1tCmluZGV4IDFkZjAyZGZjNmExYTVlZmIxYmMyMDIyYjg2NzRhZTFjMzc1OGZmODAuLmE4
YTI3YTkyYWU0NWIwYTBkNmEzZTRlNjJhMTU5YzM3OTRlMzY4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTkxLDcgKzE5
MSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKaW5kZXgg
NWFlOTgzODUwNDA0ZjUxYzY0NmU4MmZiNzI4NmM3NWE5NWRkNzM1MC4uMWI0MGMxYjRlZjE3MGFh
ODVmM2MyNzBkMGY3YTRjODZiYzdhYTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKQEAgLTUzLDcgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMzg4NGY5YWM4
NWNhMTEyOWYzNjE3YjhjNDkzZGJmZWMzMjM0MzE3Li43NjA0YTkxOTUxOWI4NGMwNzFhMWQwNGFi
ZDJkY2Q5OTRlMGJhZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDkg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9y
dCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODgxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Ugb2YgQW5vbnltb3Vz
U2xvdENvdW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBN
ZXRob2QuaDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorICAg
ICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDExLTA5LTA5
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgcGFn
ZVNjYWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBN
ZXRob2QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
TWV0aG9kLmgKaW5kZXggZGM1YmU3Yzc5OGFhMzA2Y2YxZWFkMGE1NGQyY2ExNGE3NGQzY2EwNC4u
OTI5OTAxYjlhNWVmYTMwMTk1Zjg0NDEyYWNjNjc5MmFhMzBhMTY3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5o
CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpD
YWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggYjZlZGZhNWE3NjUwNGRjMDE5OWU2ZmQwZTll
YWExYmM1Y2Y2MDk5Zi4uZTY1Yzg5ZGU1ZWNmMGIyNjMwYzgyMzE0OTM5MDYyYWU2MzYyZWZmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3Rh
dGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgdmlydHVhbCBKU0M6OkNhbGxUeXBl
IGdldENhbGxEYXRhKEpTQzo6Q2FsbERhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106983</attachid>
            <date>2011-09-10 14:31:42 -0700</date>
            <delta_ts>2011-09-10 17:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67881-20110910143142.patch</filename>
            <type>text/plain</type>
            <size>142583</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5MTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGE2ZjFiY2Q0ZWMxODI2ZmQ2NTc2NmZk
OWE0ODljMTM4ZTNhOTJjMmEuLjcyMGZkZmM0MWQxNzk3Mjk4MmNjOWQ1NTUxNzgzOTA1NTg0OWFj
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggMzk2OTA0ODQ3MGIxZDFlMDBjN2ZmNjMzNjk5MmZj
ZmMxNjQwNjMzZS4uMTNlN2UwMDlkYmFlNjVkNDQ1OTcwZDJmZjhhMGM5MGM2ODY5NTJjMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01
MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAvLyByZWZhY3RvciB0aGUgY29kZSBzbyB0aGlzIG92
ZXJyaWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCA2ZmRkZmZiZTNjNjNiZDU0NWM2NWJiZGRjM2UxMDdjMDRmYzA5YmY3Li5jMGQx
NjEwZmY2MDdjZWFkYzQ0OGE0NjRmYjZiMmI5YWMwMWFiYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8p
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IFBhcmVudDo6QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKICAgICB9CiAgICAgCiAg
ICAgSlNWYWx1ZSBnZXRQcml2YXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggZWJkNDQ1YTczYjg5MmM4YmNi
NTMyZTliZjY4YTRjMWM1OGJkMDk5MS4uOGY4YmE0NjZhN2JkMWNiMTZlMjAyNTU2NGJlNzcxM2Ix
NWVlNjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY3IEBACisyMDEx
LTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFu
b255bW91cyBzbG90cywgZXNzZW50aWFsbHkgYSBtZWNoYW5pY2FsIGNoYW5nZQorICAgICAgICBp
biBKYXZhU2NyaXB0Q29yZQorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtTdGFjazo6dmFsaWRhdGVWYWx1ZSk6CisgICAgICAgICogaGVhcC9NYXJrU3Rh
Y2suaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1
bWVudHM6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAgKEpTQzo6Qm9v
bGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJv
dG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAg
KEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OkRhdGVQ
cm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAo
SlNDOjpEYXRlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJh
c2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAg
KEpTQzo6SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJh
eTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNGaW5h
bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0
YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNT
dHJpbmcuaDoKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTVmFy
aWFibGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBw
ZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgorICAgICAgICAoSlNDOjpNYXRo
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9OdW1iZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6TnVtYmVyT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6Ok51bWJlclByb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
T2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJlZ0V4
cDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmg6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5O
b2RlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90
eXBlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAoSlND
OjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24pOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6dG9EaWN0aW9uYXJ5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
cHJldmVudEV4dGVuc2lvbnNUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpm
bGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRk
UHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cmVt
b3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwdXRTcGVjaWZpY1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNo
ZWNrQ29uc2lzdGVuY3kpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm9w
ZXJ0eVN0b3JhZ2VTaXplKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hh
aW46OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDktMDkgIENocmlzIE1hcnJpbiAgPGNtYXJy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSBkb2Vzbid0IHRo
cm90dGxlIG9uIE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5k
ZXggODNjZTg1MDY4YTZmZjhlZGJhNDhiZmFjOTg5OGQwNDE5MjU5YmZmNC4uNDViZDY5ZDMzMzE5
NTZkZmU1MjE3ZjI2NjhkN2VhZjY5ZTQ3ZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCkBAIC0zMzgsNiArMzM4LDcgQEAgX19aTjNKU0M4ZXZhbHVhdGVFUE5T
XzlFeGVjU3RhdGVFUE5TXzE0U2NvcGVDaGFpbk5vZGVFUktOU18xMFNvdXJjZUNvZGVFTlNfN0pT
VmEKIF9fWk4zSlNDOGlzWm9tYmllRVBLTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOUNvZGVCbG9ja0Qx
RXYKIF9fWk4zSlNDOUNvZGVCbG9ja0QyRXYKK19fWk4zSlNDOU1hcmtTdGFjazEzdmFsaWRhdGVW
YWx1ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlNDOVN0cnVjdHVyZTIxYWRkUHJvcGVydHlUcmFuc2l0
aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxs
RVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmUyMm1hdGVyaWFsaXplUHJvcGVydHlNYXBFUk5TXzEySlNH
bG9iYWxEYXRhRQogX19aTjNKU0M5U3RydWN0dXJlMjVjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9u
RVJOU18xMkpTR2xvYmFsRGF0YUVQUzBfTlNfN0pTVmFsdWVFCkBAIC0zNDcsNyArMzQ4LDcgQEAg
X19aTjNKU0M5U3RydWN0dXJlMjhhZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uRVJOU18xMkpT
R2xvYmFsRGF0YUVSS05TXzEwSWRlbnQKIF9fWk4zSlNDOVN0cnVjdHVyZTNnZXRFUk5TXzEySlNH
bG9iYWxEYXRhRVBOM1dURjEwU3RyaW5nSW1wbEVSalJQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOVN0
cnVjdHVyZTQwYWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUVQUzBfUktO
U18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmU2c19pbmZv
RQotX19aTjNKU0M5U3RydWN0dXJlQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFs
T2JqZWN0RU5TXzdKU1ZhbHVlRVJLTlNfOFR5cGVJbmZvRWpQS05TXzlDbGFzc0luZm9FCitfX1pO
M0pTQzlTdHJ1Y3R1cmVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RF
TlNfN0pTVmFsdWVFUktOU184VHlwZUluZm9FUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0M5U3Ry
dWN0dXJlRDFFdgogX19aTjNKU0M5Y29uc3RydWN0RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVl
RU5TXzEzQ29uc3RydWN0VHlwZUVSS05TXzEzQ29uc3RydWN0RGF0YUVSS05TXzdBcmdMaXN0RQog
X19aTjNKU0NlcUVSS05TXzdVU3RyaW5nRVBLYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA1YjM4MDZhMmUyM2U1YjVlNGM4MjAy
NDJhNzA2ZjZjNjNiMjRjMGVlLi4xZDhkN2U4M2U3OTU0NjhhNzJhNTIzYzZiYjBiOWMwODBmZTRm
Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZgpAQCAtMTgsNyArMTgsNyBAQCBFWFBPUlRTCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpT
Q0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoK
ICAgICA/PzBTSEExQFdURkBAUUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BASUFFQEFB
VkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBaCi0gICA/PzBTdHJ1Y3R1cmVASlNDQEBB
QUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBWSlNWYWx1ZUAxQEFCVlR5
cGVJbmZvQDFASVBCVUNsYXNzSW5mb0AxQEBaCisgICAgPz8wU3RydWN0dXJlQEpTQ0BAQUFFQEFB
VkpTR2xvYmFsRGF0YUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAVkpTVmFsdWVAMUBBQlZUeXBlSW5m
b0AxQFBCVUNsYXNzSW5mb0AxQEBaCiAgICAgPz8wVGhyZWFkQ29uZGl0aW9uQFdURkBAUUFFQFha
CiAgICAgPz8wVVN0cmluZ0BKU0NAQFFBRUBQQkRAWgogICAgID8/MFVTdHJpbmdASlNDQEBRQUVA
UEJESUBaCkBAIC0zODIsNiArMzgyLDcgQEAgRVhQT1JUUwogICAgID91bnByb3RlY3RASGVhcEBK
U0NAQFFBRV9OVkpTVmFsdWVAMkBAWgogICAgID91bndyYXBwZWRPYmplY3RASlNPYmplY3RASlND
QEBVQUVQQVYxMkBYWgogICAgID91dGY4QFVTdHJpbmdASlNDQEBRQkU/QVZDU3RyaW5nQFdURkBA
X05AWgorICAgID92YWxpZGF0ZVZhbHVlQE1hcmtTdGFja0BKU0NAQEtBWFZKU1ZhbHVlQDJAQFoK
ICAgICA/dmlzaXRDaGlsZHJlbkBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRVhBQVZTbG90VmlzaXRv
ckAyQEBaCiAgICAgP3Zpc2l0Q2hpbGRyZW5ASlNPYmplY3RASlNDQEBVQUVYQUFWU2xvdFZpc2l0
b3JAMkBAWgogICAgID92aXNpdENoaWxkcmVuQEpTV3JhcHBlck9iamVjdEBKU0NAQEVBRVhBQVZT
bG90VmlzaXRvckAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggNDRiNjI2NzIyN2Q3YmY0NTRhZjhmMGZhMWI2NTEy
OTg5ZjgzYTBiYy4uY2NkYmRlOGY2Y2I0MGFiNzE5ZDU0ODZhMGE0ODU0ZTcwOGZhOWY3MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uaApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtT
dGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCmluZGV4
IDdhMDRlMDYwNzgxOTRiNjEyY2EyYzEzMGYzYzczOTg3NTU2NTA1YzkuLmZkNjY4YmQ5ZWRiNjk4
MTFjYmEzOTdlYTc4ZGNiNzEyOTVkYzUyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya1N0YWNrLmNwcApAQCAtMTc0LDYgKzE3NCwxMCBAQCB2b2lkIE1hcmtTdGFjazo6dmFsaWRh
dGVWYWx1ZShKU1ZhbHVlIHZhbHVlKQogICAgIGlmIChjZWxsLT5zdHJ1Y3R1cmUoKS0+c3RydWN0
dXJlKCktPkpTQ2VsbDo6Y2xhc3NJbmZvKCkgIT0gY2VsbC0+c3RydWN0dXJlKCktPkpTQ2VsbDo6
Y2xhc3NJbmZvKCkpCiAgICAgICAgIENSQVNIKCk7CiB9CisjZWxzZQordm9pZCBNYXJrU3RhY2s6
OnZhbGlkYXRlVmFsdWUoSlNWYWx1ZSkKK3sKK30gCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCmluZGV4IGUxYzI0OWEyMGQ0
YThmY2MyNTA4ZDkyMzg2ZjI5YTY4NmI2ZTc4MWEuLjg0MjdiNzM3ZDI4OWU4NzliZDk4ODE2YmM1
MWRiNGIxMzEwNTc1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCkBA
IC0xMTgsOCArMTE4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogI2lmIEVO
QUJMRShHQ19WQUxJREFUSU9OKQogICAgICAgICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVNldChKU1Zh
bHVlKiwgc2l6ZV90KTsKLSAgICAgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVWYWx1ZShKU1ZhbHVl
KTsKICNlbmRpZgorICAgICAgICBzdGF0aWMgdm9pZCB2YWxpZGF0ZVZhbHVlKEpTVmFsdWUpOwog
CiAgICAgICAgIHZvaWQgYXBwZW5kKEpTVmFsdWUqKTsKICAgICAgICAgdm9pZCBhcHBlbmQoSlNW
YWx1ZSosIHNpemVfdCBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCmluZGV4IDAwNTE3NDIxMzc3MTllNmIxNzM0YWVlOWYzODI5YWQzN2Y2ZjNiMDUuLjU2
MTEzZGZhNjFkMDkyMjVkMWNiYzE5YzM5Y2YzMmExNDMyM2I2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCkBAIC0xMTMsNyArMTEzLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOyAKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IDkzNDc1MjIxYmI0YTVi
N2MwNWIwYzE0ZDE0NTFhMzkzZjVhNDgzNmMuLmMyYzcxOThkNjZjZjJmNTY5Yjk4NjU3NjM1MTg4
NWM2YTNjNWNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUNvbnN0cnVjdG9yLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKaW5kZXggNDJmNDFhNjMxZDQ5Y2YzZGNlOWNhOGZkN2U2YjZkYThk
NTY0MzYwNS4uYzc2NTVkMzdlOWE4MTU2ZTJjZDc4M2RmOTlhN2FlNmFkNjJmMTFlZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAt
MTIzLDcgKzEyMyw2IEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGds
b2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmgKaW5kZXggNzVlNmU4MGJhNzJmN2ExYWYyYTFlODJjOGMxNzdiNWU4ZmE4ZjFmNi4u
NDFmZjU5NGI3YmRhNWE5OGRjMzg3MWFmMmQ4NjI3MTQ1ZWFjMGVkYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00NywxMyArNDcsMTEg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKLQotICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENv
dW50ICsgMTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAppbmRleCBjZWQxY2ViMzhhNWYxNTlmYTkz
ODI5NDQ4OTM4MGM3MjlhOGY5MmE3Li4wMDBkMTk3YmYxZDAxMzkzZmQyMzk5YTBiZDdiOTRhNWE3
YzU1Y2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVj
dC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAg
ICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcAppbmRleCA3MWRiOWM0NDFlZTVlMjliOWE4ZjFjZTQ5ODU3Y2Y2YWI5YTRlZWE3
Li5hYzdhNmU5NDljMDcxN2NjOTk3MTIyN2E0YThiZDY2NmY3NDcwMDk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNTUs
MTMgKzU1LDEyIEBAIEJvb2xlYW5Qcm90b3R5cGU6OkJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgZmluaXNoQ3JlYXRpb24o
ZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotdm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2
b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVh
bihmYWxzZSkpOwogCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBwdXRBbm9u
eW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsK
IH0KIAogYm9vbCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xv
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90
b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
aAppbmRleCBiNzM3ZGZmNzI4ODU5NmZlYmJjYzhhYWQxYjZmOGRlMTJmNmNhM2VjLi4yYTZjODFm
YTNkNTMwZDYwYjgyZTQ1N2U4OTgyOGVhOTg3OGZmMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCkBAIC0zOCwxMyArMzgsMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgQm9vbGVhbk9iamVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBCb29sZWFuT2JqZWN0OjpBbm9ueW1v
dXNTbG90Q291bnQgKyAxOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQm9vbGVhblByb3RvdHlw
ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCA5MzZhZmMxZjUx
NWQxZWY1YmE5MTRmMTIwNzUwNzRhOGQ3ZGRkOWE4Li41ZmE1MWRmOTU5OWVkM2UxNDZiNmI4M2Nh
OGIwMmQ5MjEwMjg1MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAg
IH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUluc3RhbmNlLmgKaW5kZXggYmQzNmViNzMzYWVlZGVhYmIwM2I0MDkzOWVmMDJmNTgzZmJiY2Zl
My4uMTIxMzBhNDQzYTI0YmZlYjg0YmY2YTNiNThhOTE2MDEyZWY4MzJkYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA3NTBkZGY5NWExYjQ4
YWE0ZTRkNzc5ODZjNTQ1YzY4NDU3YjM2MjBjLi43ODM4NTg1OGRiMGU2MjdjOGM3YjY0NTA1NTI0
MjU4YzJjMDc0MzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmNwcApAQCAtNDM2LDEzICs0MzYsMTIgQEAgRGF0ZVByb3RvdHlwZTo6RGF0ZVBy
b3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnUKICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi12b2lkIERh
dGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCopCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
CiAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIERhdGVD
b25zdHJ1Y3RvciBoYXMgYmVlbiBidWlsdC4KLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5n
bG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgRGF0ZVByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggMTA2OTA4NTI4MmFlMjVkNWFmY2M4OWI5YWM5
MjMxNzMxM2UwMjI5Yy4uY2RhNmI3YWZhOTcxNTU4MDMxMWY0MGFiZjk0M2Q1ZmQyNDMwYTQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAt
NDUsMTUgKzQ1LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IERhdGVJbnN0YW5jZTo6U3RydWN0dXJlRmxhZ3M7Ci0K
LSAgICAgICAgQ09NUElMRV9BU1NFUlQoIURhdGVJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50
LCBEYXRlUHJvdG90eXBlX3N0b21wc19vbl95b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckluc3RhbmNlLmgKaW5kZXggNWI4Zjk1YTVjZTlkMzIyODU2ZmFhZTk5YjJkZTA4NzhjMTlkZDkx
My4uMzlkNmMyMmYzYTliNGIxMWVmMjg3NjRlMGQwM2Q4ZTg5Nzc1Zjg3YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMzMsNyArMzMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5j
ZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggMmE5YjlhOWIwNDBhNTQ1Mjg4NWQ4NDE1ZWQw
MWEyZWMxYWRjNjMwMS4uMmIyZjAyY2Y2ZDg3OTJlZjQ0ZDVmYzlmOWY0Zjc0OGVjZjViMDU4NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNw
cApAQCAtNTUsMTIgKzU1LDExIEBAIEVycm9yUHJvdG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVj
U3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogewogfQogCi12b2lkIEVycm9yUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit2b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCksICIiKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
ICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5u
YW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKLSAgICBw
dXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAogYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qg
JnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
aAppbmRleCA5MzQ4NGMyNzQ2NWU0ZDkxNTU0OWYxNWUxMDg3M2ZlYzU5OGRkYWMwLi40MjVkNjZi
Y2UzZWI2YjJmYjEwNWIyOGZjMWM3NDRhZjNiYWI0Yzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC01MCw3ICs1MCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0Kik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6U3Ry
dWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90
Q291bnQgPSBFcnJvckluc3RhbmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKaW5kZXggMzllYmUxNjdkZTAwNWY1
Nzk3ZjdmOTA1YWZhOTA4NmMxNDgxNTFiZC4uYjE3MjRkMDM0NjYzYmYzMTEzN2QwYThlYWMxMjZh
ODhlOTNkMTEyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU19F
WFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggNmJmNjQyNWMzMWIyY2U5NWMzN2M4NTFlODZhOTYx
ODg5NGY1MDY5Yy4uNTM0MTUzYWU4NDk0Y2RlMTk5ZWFiMzAwYWYzNWQ3NDgzYzRmZDFiMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtODMsNyArODMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBtX251bVBhcmFtZXRlcnNG
b3JDYWxsID09IE5VTV9QQVJBTUVURVJTX0lTX0hPU1Q7CiAgICAgICAgIH0KIAotICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5m
byhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsgfQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7IH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
CkBAIC0xOTgsNyArMTk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgTmF0aXZlRnVu
Y3Rpb24gZnVuY3Rpb24oKSB7IHJldHVybiBtX2Z1bmN0aW9uOyB9CiAKLSAgICAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oTGVh
ZlR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQor
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
LCBUeXBlSW5mbyhMZWFmVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgfQogICAgICAg
ICAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKQEAgLTMzNCw3ICsz
MzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywg
VHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTM5NSw3ICszOTUsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwpAQCAtNTUxLDcgKzU1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
RnVuY3Rpb25FeGVjdXRhYmxlKiBmcm9tR2xvYmFsQ29kZShjb25zdCBJZGVudGlmaWVyJiwgRXhl
Y1N0YXRlKiwgRGVidWdnZXIqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqKiBleGNlcHRp
b24pOwogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywg
VHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmlu
ZGV4IDEwZDFhMTc2ZTIyY2JjMmEzOGJlNDRjMzY5NjE1ZWE4NDA5NWVhMGYuLjlhZDcwZjcwMTU2
MmMyZDk1N2Q3ZGJlOTgzZDAwYjBmNTZmOTM5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCAyMTExYTVhNWY5YmYyYmNlM2QzYWVlZGUw
MTU3ZmUzYjQxYjdkYTUwLi4yNWEzNjkyNDI2YjMwODg0MWU4ZWUyNzYzMGI0ZTdmMzIxYzJiZGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAt
NjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRTZXR0ZXIoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogc2V0dGVyKSB7IG1fc2V0dGVyLnNldChn
bG9iYWxEYXRhLCB0aGlzLCBzZXR0ZXIpOyB9CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEdldHRlclNldHRlclR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhH
ZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmlu
ZGV4IDIzZGY2ZDM0NmVhN2RmODE0YTQ5NDcwYzc5YmFkYWRkYmQ3ZjFlZjIuLjBmNjE1OWIzNjRh
ZjM5NzIxNGJjYTNiYjhkZWYxMGVhNTE5ODlkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKaW5kZXggNmMwZDMzZDM3YjA5ZTY2MDdmZDJj
ZGJhZjhlMTFiYzI1MTY1Y2YyMS4uYjI3YjJlNTY1MmIyMTAwZTkxNjM5MWE0NDRjNWM3MWUwMTll
MjA2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVl
V3JhcHBlci5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgJnNfaW5m
byk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8g
c19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApp
bmRleCA3MDFlMjE4ZWFhZDhlYjA2MzRiMDVlOTcyYjExMmM0MjQwNzgyMDViLi5kODYzNTkzYjMy
YjE4MDRiNjE2ZTdiYTViYzhiZjFjYzVhNmE1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0g
ICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8s
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Q2FsbEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXgg
MzU0NjU5YTM2OTM1YjZmZTZmOTNiY2RlNDRlMWM4OTkwZWMwMTI1OS4uNTY2MjIyNWU1N2NkMTk3
NTNjZDI5NDZlMWI2MmY1NzI2YzA2ZGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuaApAQCAtMTUxLDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgaW5saW5lIHZvaWQgdmlzaXRDaGlsZHJlbkRpcmVjdChTbG90Vmlz
aXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRl
QXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3Bw
CmluZGV4IDQzZmQyMjk5ZGU4MWNhZDdmMGU4MTY2MDNmYzQ2YjI5ODZlYTQ5NTEuLmRhYzNkOTRk
Mjg5NzZjNDlhZGRkODA5NGVmMGRkMzQzY2EwOTE5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSlNCeXRlQXJy
YXk6On5KU0J5dGVBcnJheSgpCiAKIFN0cnVjdHVyZSogSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKQog
ewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGNsYXNzSW5mbyk7CiB9CiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaAppbmRleCBlMTA2NDQ2NmYwNzQ4MDUzY2Q5MGJmNGQ5OTE0ODQwMWMxMjE1ZDQwLi41YjNi
NzZlMGI3YjMzZTgwYmVhMGFhMjFkNzgzNjcxYzZkODAzMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTQ1LDcgKzE0NSw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
I2VuZGlmCiAgICAgICAgIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IDA7CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bERhdGEmLCBTdHJ1Y3R1cmUqLCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggMWRiM2M4MGRiNmM0MDQyYzEyYWJh
ZDI3MzI1YmFjZTVhY2YxOWFmYy4uYjE5MjZhNGIzOGZlM2ViZTllZDIxMTEzZDJjZjI1NDVkMzg1
YzQzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAt
MTE5LDcgKzExOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOyAKICAgICAgICAgfQogCiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAppbmRleCBkMGE4MDJlZGUwNjZlNjhmOGVmNjFhMjE5NDVhZWE0Y2U0ODE3NGM4Li42MGE0NWU2
M2NkZTM5NzAxMjk4ZjAwNmE3ZTFiYWUzMWM1M2EwZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE2Nyw3ICsxNjcsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSk7CiAgICAgICAgICAgICBzdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KGds
b2JhbERhdGEsIHRoaXMpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmpl
Y3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3Np
bmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAg
ICAgICAgICAgaW5pdCh0aGlzVmFsdWUpOwogICAgICAgICB9CkBAIC0yNzQsNyArMjczLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHJlZ2lzdGVyV2Vh
a01hcChPcGFxdWVKU1dlYWtPYmplY3RNYXAqIG1hcCkKQEAgLTI5NCw3ICsyOTMsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgZG91YmxlIHdlYWtSYW5kb21OdW1iZXIoKSB7IHJldHVybiBt
X3dlYWtSYW5kb20uZ2V0KCk7IH0KICAgICBwcm90ZWN0ZWQ6CiAKLSAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IEpTVmFyaWFibGVPYmplY3Q6OkFub255
bW91c1Nsb3RDb3VudCArIDE7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAKICAgICAgICAgc3RydWN0IEdsb2JhbFByb3BlcnR5SW5mbyB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggN2I2OGI1
MjJjY2Y3NjJkMWQxMzVjYzZjMTc0NWJiOWQzMzhjNjIxMC4uMjFmZTQyOTE2YmFhNjRlMjIwMzFh
MzU1ZTRhYWVkMmE5YWU0ODkxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAg
IH0KIAogICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5oCmluZGV4IDgyYTMyZjhlYzU3ZmQ0Yzc5Mzk5ZWIxODQxYWMxOTBhNmRkYzc0YjguLmJm
MWJhOGMwMjg2ZjFjYjVkMmUxMmJkOWNhNzc5ZWM2ODI2YzUyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBD
bGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
aW5kZXggYmM0MzJkM2FjOGYyOTI2ZDk1NWRjNmVjYzY5MjFmNThiNThkYzQwZi4uZTNmYjc2Y2Zl
YWIyZTVlYmY4YWZmOTJiYzk0MDViYzMwOWU0NDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCkBAIC0yMzEsMjIgKzIzMSw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKGdsb2Jh
bERhdGEsIHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVl
KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5v
bnltb3VzU2xvdENvdW50KCkpOwotICAgICAgICAgICAgbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgp
LT5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgdmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQg
Y2xlYXJBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAg
ICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKLSAg
ICAgICAgICAgIGxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KS0+Y2xlYXIoKTsKLSAgICAgICAgfQot
ICAgICAgICBKU1ZhbHVlIGdldEFub255bW91c1ZhbHVlKHVuc2lnbmVkIGluZGV4KSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnlt
b3VzU2xvdENvdW50KCkpOwotICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uRm9yT2Zmc2V0KGlu
ZGV4KS0+Z2V0KCk7Ci0gICAgICAgIH0KLQogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSgp
LT5nbG9iYWxPYmplY3QoKSk7CkBAIC0yNzQsNyArMjU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
MDsKQEAgLTM1MSw3ICszMzUsNyBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxp
bmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAogCiAgICAgICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQog
CiAgICAgcHJvdGVjdGVkOgpAQCAtMzk4LDcgKzM4Miw3IEBAIENPTVBJTEVfQVNTRVJUKChKU0Zp
bmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGlu
ZVN0CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IGNjMTIy
YmQ3ZGVjYzgzNmVhOWYzZDE3MGQ3ZjM4YjAxYzI3NWNjYjIuLjRjN2E2ZWU5Njc0NThlOTE0YTQ3
MzBmZGU2NGEzYWE1ZTQ1MTA5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC01NCw5ICs1NCw4IEBA
IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0CiAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlO
YW1lcyhleGVjKTsKICAgICBvLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMp
OwogICAgIHNpemVfdCBudW1DYWNoZWFibGVTbG90cyA9IDA7Ci0gICAgaWYgKCFvLT5zdHJ1Y3R1
cmUoKS0+aGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoKSAmJiAhby0+c3RydWN0dXJlKCktPmhh
c0Fub255bW91c1Nsb3RzKCkgJiYKLSAgICAgICAgIW8tPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJT
ZXR0ZXJQcm9wZXJ0aWVzKCkgJiYgIW8tPnN0cnVjdHVyZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlv
bmFyeSgpICYmCi0gICAgICAgICFvLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzKCkpCisgICAgaWYgKCFvLT5zdHJ1Y3R1cmUoKS0+aGFzTm9uRW51bWVy
YWJsZVByb3BlcnRpZXMoKSAmJiAhby0+c3RydWN0dXJlKCktPmhhc0dldHRlclNldHRlclByb3Bl
cnRpZXMoKQorICAgICAgICAmJiAhby0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9u
YXJ5KCkgJiYgIW8tPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMoKSkKICAgICAgICAgbnVtQ2FjaGVhYmxlU2xvdHMgPSBvLT5zdHJ1Y3R1cmUoKS0+cHJv
cGVydHlTdG9yYWdlU2l6ZSgpOwogICAgIAogICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGpz
UHJvcGVydHlOYW1lSXRlcmF0b3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yPigqZXhlYy0+aGVhcCgpKSkgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihleGVjLCBwcm9w
ZXJ0eU5hbWVzLmRhdGEoKSwgbnVtQ2FjaGVhYmxlU2xvdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCmluZGV4IDZk
NWM3NWFhZjE3YmFhZmY4NWEwZmJmNWI2NWEyNGM1NTZmYTMzZDQuLjJmMmNjYjVjZjMxYWU4MWQ1
MGY5MDc0NjMxZWI1YzBhZjFkMGNhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3Vu
ZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dGF0aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oCmluZGV4IDIyNTYzODY1MTc0MDU1ZGMzMDlhNTQ4N2FiNmM5MTlkYmQw
ZGYyYzQuLjFmOGQ4YjhmZWYzZDhiYzNjMWUyYjViMjAwMTZiMmE1OWY1YzUyNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgK
QEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsg
fQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
KSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CiAK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5k
ZXggNjM4MjAzMWIyZGI1OTA3YmU5YTMxMDZhYjg4OWFhNjE0NzRkMzZiNC4uN2IwZGNlMmY2MmNj
NDdjYzVmYjM2NjMyM2ZmY2RkYTg1NjgyYjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5oCkBAIC00MzgsNyArNDM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KSwgJnNf
aW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJs
ZU9iamVjdC5oCmluZGV4IGQ1N2M2YWMwNGNiZTJiMTc3YWY2Mzc5YWU5MmU2NGM3NTg4ZjIzYmYu
LmMyNmRjN2ViYTE3ZmU5YmQ0MWZhZTNjYWIwMTc1OTA2MjhiMDZjZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTYzLDcgKzYz
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAgIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5k
ZXggMTEzNDIzZTE2MzQ3M2U1MjdhMmEzNGY1NTVlMmY1ZDU4ZmVkODg0NC4uY2Y0NGUwNGU3ODVk
MjRlNDlhMGI5YzU1NzJkNWUxNWMyYTdiNDkzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCAxMDFlMjY2N2E1ZTgyNzY4NzM5ODZmZjRkNzEx
OWNmZTkzOTIzY2M0Li43YzQ3MDcyZjQ1OTAwMWUzMGNlNmY5ZWExNzk1OWQ1MGFmNTRjOTQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC00NSw3ICs0
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oCmluZGV4IDZhNDczZGE4YmI4NTZlMDA4YjcyZTM2ZTE5NGMzOGUyOGUwYzZjZTcuLjFhMGI0
ZTA3ODYyYWY3MzJjM2U1Yzg0Zjc3YjJkZTE4N2Y5MzZiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQz
LDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fZXJyb3JTdHJ1Y3R1cmUuZ2V0KCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDFlZGQwMTQ3NDJmOWViZWIxZTQ1MmRkNjRkNDRjMTcwOGE1NThiYWUuLjg0YzRkMWZiNjI5
NjgyYTU2NGYxYTFiNmY4MWRkMmVkOTkxNzY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
IAogICAgICAgICB9CiAKICAgICAgICAgZW51bSB7IE5hTlZhbHVlLCBOZWdJbmZpbml0eSwgUG9z
SW5maW5pdHksIE1heFZhbHVlLCBNaW5WYWx1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCBlNmNkNGNmMzgxY2M1OTI2NmMwNTU0NWM4YmEy
NDQ5MWY1YWZjODY3Li5mMTEzOGRhNzJkNGFlOGQwMDM3YWJkM2Q0YTliZWYzZjQyZGIyNmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaApAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRl
eCA5YjU3NjJiOTVlMTA1MDM0OTAzZDU4ZWNlNGFlMDMyODA4N2NjNjlhLi44NzAxZTkxMTdmYzgx
ZTlmOTMwZTBjZDgwYjUwYTBhMzQxZmE1YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTc2LDEzICs3NiwxMiBAQCBOdW1i
ZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0
KTsKIH0KIAotdm9pZCBOdW1iZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgTnVtYmVyUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgIHNldEludGVy
bmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcigwKSk7CiAKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQogCiBib29sIE51bWJlclByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCmluZGV4IDIyNWI1MTU5NjcwYjBlYjMwNmU5
OTYwYzY0YTcwYjNkMjEwZGU4NmEuLjhlMTAwN2FjYmJjOGJjNmNhNTA1MjQxZGU2NjdmM2NkZTZk
NDgwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3Rv
dHlwZS5oCkBAIC0zOCwxMyArMzgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTnVtYmVyT2JqZWN0OjpTdHJ1Y3R1
cmVGbGFnczsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3Vu
dCA9IE51bWJlck9iamVjdDo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIE51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmgKaW5kZXggMzhjNDhlODQ5ZmQzMTk2OWFlOWVlNzI5ZGE4YmVkZTliZmRhMTEx
NS4uNGMzMjAyODgxYjIwNGNjNDEyOGY4NzQyOGU0MDdhMTEzYzI5NzBkMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC00Myw3
ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5k
ZXggNTA4OWE1ZmZkYmY3NzNkMGZmN2U4Njk5MjEzNWQ1NTVhYTI5NTc2NC4uZGIwMDg5YjdkZDll
NWFlZTYyZTQ3NDJlMzA5ZDQwMzYyYWQ5YWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC02OSwxMSArNjksMTAgQEAgT2Jq
ZWN0UHJvdG90eXBlOjpPYmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUq
IHN0dWN0dXJlKQogewogfQogCi12b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
dm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3Vz
VmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAK
IHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5k
ZXggMTIwNzQwODk1MjUzN2U2YWU3MTFjMjRhMTNiZmFhMjljZDcxODNmOS4uNGMxMmRmYjQ2Nzky
ZGMxYjhlMWVlMTMyMGU4ZDQyNGJhNmI5ZmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTQwLDEyICs0MCwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SlNOb25GaW5hbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU05vbkZpbmFsT2JqZWN0OjpBbm9ueW1vdXNT
bG90Q291bnQgKyAxOwogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiwgSlNHbG9iYWxPYmplY3QqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAu
aAppbmRleCBlOTkwODE0M2UxZTc4MDdkMGVmYzE4NWU5M2Q0MjYxNmYxMGE4ZjRiLi4wY2Y4MGEw
NmUzMmE4MDZjZDRhMzg5NmJkYzFiZjg5NzNjN2FmMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHAuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksIDAsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhMZWFmVHlwZSwgMCksICZzX2luZm8p
OwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggYjViMmIzMDI2NjE2OWU2ODZmNWY3YTJlYTBmNjZh
M2Y4MmRkYzk5MC4uNWZhNzYxZWE2YjBhZmE3NTVkOTg0M2IzM2I2ZDNiNzgyYzYzOGEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5o
CkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggNDlkZGQzN2IzMjM5NzIwYTY2NmQ2MDhiOWVlMjZj
ZDRkZmNmZjVmOS4uYzlmYjAwYmYwOTA4M2MyZTkxNTc4NGNhNzNlMjYxNWE0ZTUyZTczMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTczLDcg
KzczLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IGQ0
NWIwYTI3YjA2ZDBjNDQxNTYzMjQ2NDg4ZTJjOGRlNjlmMzY2ZTMuLmMzMmE5YmY4N2VlZjYzNWUw
YTg2MmRmZmJkYzM3NTJlZmFlNzdkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2NvcGVDaGFpbi5oCmluZGV4IDY5YjBiZDEyYjA5MzMwMjgzODA3MWU4NTgyMWJiNzg4NTYy
NWMyNTMuLmRkNTAwNGI1MDBhODJjYWM0ZWVhZjJiYmM1NzViNzhmZDg0N2RmNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKQEAgLTg2LDcgKzg2LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcHJpbnQoKTsKICNlbmRpZgogICAgICAgICAK
LSAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykg
eyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RW
aXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlj
dEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RF
dmFsQWN0aXZhdGlvbi5oCmluZGV4IDRiYjc2YzA2ZDkxYWIxYjQ5OTYwMTY3Mjk3ZTRiZGQ0MzE2
MjczMjQuLjRlNjE3NWQxYmE4YTMxODc4MWYxNDUwYTNlZmNmYjczZmZhZTQyNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24u
aApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7CiAgICAgfQogICAgIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggOGFiYWQ5ZGVkMWI0NmY2
ODQxNTM0MGE3MGUwY2M5ZDlmM2VlMTBkNy4uODBlMzcxNjIwOTA1ZTA5OGJjMzFmZWVmMTI3MDdj
Yzc4Y2UwYjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuaAppbmRleCAxOGFmZTcyZGVkNGQ3OTFmMjY5MTAwYjY0ZmQ2NTIwZmRmYjc1OTRk
Li5mZjkxZGIzMjRmOGMwYTg5YzI3YjA4MTIxZTgwZDE5Mjg4OTMyMzk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNyArNjAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RU
aGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oCmluZGV4IGUyMWY5YTEwNjYwOTE2Y2ZlYjVhODEy
Njk2NDFhZGYwNTRlZTE1ZTYuLmMwNGVmZGUzZTFhZGQyNTdiZjdkYWE5NmIwY2Q2YjE4MTQ0ZTFj
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaApAQCAtNDgs
NyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNTkwMzkwOWI5NGQyZGU0NTgxYzQ3MzQwYjQwMDJk
ZjY4ODBhYjNhNC4uYTFjOWFhOWYxY2I2ZTg1MDE0NTMyODEwYWUyM2MwYzg0YmJhNTI5YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CkBAIC0xMzcsMTIgKzEzNywxMSBAQCBTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3RvdHlwZShF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZmluaXNo
Q3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lQW5kTWVzc2FnZSk7CiB9CiAKLXZvaWQg
U3RyaW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBuYW1lQW5kTWVzc2FnZSkKK3ZvaWQgU3Ry
aW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqIG5hbWVBbmRNZXNzYWdlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZUFuZE1lc3NhZ2UpOwogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiAKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRh
KCksIDAsIGdsb2JhbE9iamVjdCk7CiAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdpbGwgYmUgYWRk
ZWQgbGF0ZXIsIGFmdGVyIFN0cmluZ0NvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0CiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9u
dEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuaAppbmRleCA2NTFmOWFjM2RkNGY1N2RhYjcyOGJiMDUyNjFjNTc4OWIxOGM2MWQxLi40
OWExZGEyMDhkMWUwYzE4Mjg1NDMyNWI4NDQ0NGMyMzdiZTgzOGQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtNDQsNyArNDQsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKQEAgLTUzLDggKzUzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyop
OwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0g
ICAgICAgIENPTVBJTEVfQVNTRVJUKCFTdHJpbmdPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCwg
U3RyaW5nUHJvdG90eXBlX3N0b21wc19vbl95b3VyX2Fub255bW91c19zbG90KTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IDE7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAppbmRleCAyYmRmNWZkMjljYzQ4ZGE1MDcxM2FjNjdlNDRiYjYyZjc3ZmM2NmE5Li5l
MzVmMGM0ZDQ2ZmFkMjcyYzkzNTc3ZTA0YWZjOTlmYmI2MGQxYjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lk
IFN0cnVjdHVyZTo6ZHVtcFN0YXRpc3RpY3MoKQogI2VuZGlmCiB9CiAKLVN0cnVjdHVyZTo6U3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWdu
ZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKK1N0cnVj
dHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5m
bywgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwg
Z2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX3R5cGVJbmZvKHR5
cGVJbmZvKQogICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2Jq
ZWN0LCBXcml0ZUJhcnJpZXI8SlNHbG9iYWxPYmplY3Q+OjpNYXlCZU51bGwpCkBAIC0xNzMsNyAr
MTczLDYgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1YKICAgICAsIG1faGFzTm9uRW51bWVyYWJs
ZVByb3BlcnRpZXMoZmFsc2UpCiAgICAgLCBtX2F0dHJpYnV0ZXNJblByZXZpb3VzKDApCiAgICAg
LCBtX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudCgwKQotICAgICwgbV9hbm9ueW1vdXNTbG90
Q291bnQoYW5vbnltb3VzU2xvdENvdW50KQogICAgICwgbV9wcmV2ZW50RXh0ZW5zaW9ucyhmYWxz
ZSkKICAgICAsIG1fZGlkVHJhbnNpdGlvbihmYWxzZSkKIHsKQEAgLTE5NCw3ICsxOTMsNiBAQCBT
dHJ1Y3R1cmU6OlN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgLCBtX2hh
c05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKGZhbHNlKQogICAgICwgbV9hdHRyaWJ1dGVzSW5QcmV2
aW91cygwKQogICAgICwgbV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQoMCkKLSAgICAsIG1f
YW5vbnltb3VzU2xvdENvdW50KDApCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQog
ICAgICwgbV9kaWRUcmFuc2l0aW9uKGZhbHNlKQogewpAQCAtMjEzLDcgKzIxMSw2IEBAIFN0cnVj
dHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJl
KiBwcmV2aW91cykKICAgICAsIG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMocHJldmlvdXMt
Pm1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMpCiAgICAgLCBtX2F0dHJpYnV0ZXNJblByZXZp
b3VzKDApCiAgICAgLCBtX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudChwcmV2aW91cy0+bV9z
cGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQpCi0gICAgLCBtX2Fub255bW91c1Nsb3RDb3VudChw
cmV2aW91cy0+YW5vbnltb3VzU2xvdENvdW50KCkpCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25z
KHByZXZpb3VzLT5tX3ByZXZlbnRFeHRlbnNpb25zKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKHRy
dWUpCiB7CkBAIC0yNTMsNyArMjUwLDcgQEAgdm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJv
cGVydHlNYXAoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogCiAgICAgZm9yIChwdHJkaWZmX3Qg
aSA9IHN0cnVjdHVyZXMuc2l6ZSgpIC0gMjsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgc3RydWN0
dXJlID0gc3RydWN0dXJlc1tpXTsKLSAgICAgICAgUHJvcGVydHlNYXBFbnRyeSBlbnRyeShnbG9i
YWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMuZ2V0KCksIG1fYW5vbnlt
b3VzU2xvdENvdW50ICsgc3RydWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0
ZXNJblByZXZpb3VzLCBzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkp
OworICAgICAgICBQcm9wZXJ0eU1hcEVudHJ5IGVudHJ5KGdsb2JhbERhdGEsIHRoaXMsIHN0cnVj
dHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQoKSwgc3RydWN0dXJlLT5tX29mZnNldCwgc3RydWN0
dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3VzLCBzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUlu
UHJldmlvdXMuZ2V0KCkpOwogICAgICAgICBtX3Byb3BlcnR5VGFibGUtPmFkZChlbnRyeSk7CiAg
ICAgfQogfQpAQCAtMjkwLDkgKzI4Nyw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9w
ZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0CiAgICAg
ICAgIGlmIChzcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyAmJiBzcGVjaWZpY1ZhbHVlSW5QcmV2aW91
cyAhPSBzcGVjaWZpY1ZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIEFTU0VS
VChleGlzdGluZ1RyYW5zaXRpb24tPm1fb2Zmc2V0ICE9IG5vT2Zmc2V0KTsKLSAgICAgICAgb2Zm
c2V0ID0gZXhpc3RpbmdUcmFuc2l0aW9uLT5tX29mZnNldCArIGV4aXN0aW5nVHJhbnNpdGlvbi0+
bV9hbm9ueW1vdXNTbG90Q291bnQ7Ci0gICAgICAgIEFTU0VSVChvZmZzZXQgPj0gc3RydWN0dXJl
LT5tX2Fub255bW91c1Nsb3RDb3VudCk7Ci0gICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPm1fYW5v
bnltb3VzU2xvdENvdW50ID09IGV4aXN0aW5nVHJhbnNpdGlvbi0+bV9hbm9ueW1vdXNTbG90Q291
bnQpOworICAgICAgICBvZmZzZXQgPSBleGlzdGluZ1RyYW5zaXRpb24tPm1fb2Zmc2V0OwogICAg
ICAgICByZXR1cm4gZXhpc3RpbmdUcmFuc2l0aW9uOwogICAgIH0KIApAQCAtMzIyLDggKzMxNyw2
IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqCiAgICAgICAgIFN0cnVjdHVyZSogdHJhbnNpdGlv
biA9IHRvQ2FjaGVhYmxlRGljdGlvbmFyeVRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KTsKICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSAhPSB0cmFuc2l0aW9uKTsKICAgICAgICAgb2Zm
c2V0ID0gdHJhbnNpdGlvbi0+cHV0U3BlY2lmaWNWYWx1ZShnbG9iYWxEYXRhLCBwcm9wZXJ0eU5h
bWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljVmFsdWUpOwotICAgICAgICBBU1NFUlQob2Zmc2V0ID49
IHN0cnVjdHVyZS0+bV9hbm9ueW1vdXNTbG90Q291bnQpOwotICAgICAgICBBU1NFUlQoc3RydWN0
dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RD
b3VudCk7CiAgICAgICAgIGlmICh0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgPiB0
cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQogICAgICAgICAgICAgdHJhbnNp
dGlvbi0+Z3Jvd1Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CiAgICAgICAgIHJldHVybiB0cmFu
c2l0aW9uOwpAQCAtMzUwLDEzICszNDMsMTAgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFBy
b3BlcnR5VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSoKICAg
ICB9CiAKICAgICBvZmZzZXQgPSB0cmFuc2l0aW9uLT5wdXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERh
dGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJU
KG9mZnNldCA+PSBzdHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50KTsKLSAgICBBU1NFUlQo
c3RydWN0dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91
c1Nsb3RDb3VudCk7CiAgICAgaWYgKHRyYW5zaXRpb24tPnByb3BlcnR5U3RvcmFnZVNpemUoKSA+
IHRyYW5zaXRpb24tPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCiAgICAgICAgIHRyYW5zaXRp
b24tPmdyb3dQcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwogCi0gICAgdHJhbnNpdGlvbi0+bV9v
ZmZzZXQgPSBvZmZzZXQgLSBzdHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50OwotICAgIEFT
U0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255
bW91c1Nsb3RDb3VudCgpKTsKKyAgICB0cmFuc2l0aW9uLT5tX29mZnNldCA9IG9mZnNldDsKICAg
ICBzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblRhYmxlLmFkZChnbG9iYWxEYXRhLCB0cmFuc2l0aW9u
KTsKICAgICByZXR1cm4gdHJhbnNpdGlvbjsKIH0KQEAgLTM2OCw4ICszNTgsNiBAQCBTdHJ1Y3R1
cmUqIFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVydHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dQogICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IHRvVW5jYWNoZWFi
bGVEaWN0aW9uYXJ5VHJhbnNpdGlvbihnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwogCiAgICAgb2Zm
c2V0ID0gdHJhbnNpdGlvbi0+cmVtb3ZlKHByb3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJUKG9mZnNl
dCA+PSBzdHJ1Y3R1cmUtPm1fYW5vbnltb3VzU2xvdENvdW50KTsKLSAgICBBU1NFUlQoc3RydWN0
dXJlLT5tX2Fub255bW91c1Nsb3RDb3VudCA9PSB0cmFuc2l0aW9uLT5tX2Fub255bW91c1Nsb3RD
b3VudCk7CiAKICAgICByZXR1cm4gdHJhbnNpdGlvbjsKIH0KQEAgLTM4NSw4ICszNzMsNyBAQCBT
dHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIFN0cnVjdAogICAgIHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0
eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlU
YWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJhbnNpdGlv
bik7CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwotICAg
IAotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRp
b24tPmFub255bW91c1Nsb3RDb3VudCgpKTsKKwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQog
CkBAIC00MDksOCArMzk2LDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0
aW9uVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnUKICAgICAgICAgYm9v
bCByZW1vdmVkID0gdHJhbnNpdGlvbi0+ZGVzcGVjaWZ5RnVuY3Rpb24oZ2xvYmFsRGF0YSwgcmVw
bGFjZUZ1bmN0aW9uKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVkKTsK
ICAgICB9Ci0gICAgCi0gICAgQVNTRVJUKHN0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkg
PT0gdHJhbnNpdGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkpOworCiAgICAgcmV0dXJuIHRyYW5z
aXRpb247CiB9CiAKQEAgLTQyMyw4ICs0MDksNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Z2V0
dGVyU2V0dGVyVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZQog
ICAgIHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERh
dGEpOwogICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVBy
b3BlcnR5VGFibGUoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9p
c1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwotICAgIAotICAgIEFTU0VSVChzdHJ1Y3R1cmUt
PmFub255bW91c1Nsb3RDb3VudCgpID09IHRyYW5zaXRpb24tPmFub255bW91c1Nsb3RDb3VudCgp
KTsKKwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQogCkBAIC00MzgsOCArNDIzLDcgQEAgU3Ry
dWN0dXJlKiBTdHJ1Y3R1cmU6OnRvRGljdGlvbmFyeVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBz
dHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwogICAg
IHRyYW5zaXRpb24tPm1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1ZTsKICAgICB0cmFuc2l0
aW9uLT5tX2RpY3Rpb25hcnlLaW5kID0ga2luZDsKLSAgICAKLSAgICBBU1NFUlQoc3RydWN0dXJl
LT5hbm9ueW1vdXNTbG90Q291bnQoKSA9PSB0cmFuc2l0aW9uLT5hbm9ueW1vdXNTbG90Q291bnQo
KSk7CisKICAgICByZXR1cm4gdHJhbnNpdGlvbjsKIH0KIApAQCAtNDkzLDcgKzQ3Nyw2IEBAIFN0
cnVjdHVyZSogU3RydWN0dXJlOjpwcmV2ZW50RXh0ZW5zaW9uc1RyYW5zaXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBTdHJ1CiAgICAgdHJhbnNpdGlvbi0+bV9pc1Bpbm5lZFByb3BlcnR5
VGFibGUgPSB0cnVlOwogICAgIHRyYW5zaXRpb24tPm1fcHJldmVudEV4dGVuc2lvbnMgPSB0cnVl
OwogCi0gICAgQVNTRVJUKHN0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkgPT0gdHJhbnNp
dGlvbi0+YW5vbnltb3VzU2xvdENvdW50KCkpOwogICAgIHJldHVybiB0cmFuc2l0aW9uOwogfQog
CkBAIC01MzksNyArNTIyLDYgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9u
YXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmoKICAgICBpZiAoaXNV
bmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgewogICAgICAgICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxl
KTsKIAotICAgICAgICB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQgPSBtX2Fub255bW91c1Ns
b3RDb3VudDsKICAgICAgICAgc2l6ZV90IHByb3BlcnR5Q291bnQgPSBtX3Byb3BlcnR5VGFibGUt
PnNpemUoKTsKICAgICAgICAgVmVjdG9yPEpTVmFsdWU+IHZhbHVlcyhwcm9wZXJ0eUNvdW50KTsK
IApAQCAtNTQ4LDEyICs1MzAsMTIgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0
aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmoKICAgICAgICAg
Zm9yIChQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBpdGVyID0gbV9wcm9wZXJ0eVRhYmxlLT5iZWdp
bigpOyBpdGVyICE9IGVuZDsgKytpdGVyLCArK2kpIHsKICAgICAgICAgICAgIHZhbHVlc1tpXSA9
IG9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KGl0ZXItPm9mZnNldCk7CiAgICAgICAgICAgICAvLyBV
cGRhdGUgcHJvcGVydHkgdGFibGUgdG8gaGF2ZSB0aGUgbmV3IHByb3BlcnR5IG9mZnNldHMKLSAg
ICAgICAgICAgIGl0ZXItPm9mZnNldCA9IGFub255bW91c1Nsb3RDb3VudCArIGk7CisgICAgICAg
ICAgICBpdGVyLT5vZmZzZXQgPSBpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBD
b3B5IHRoZSBvcmlnaW5hbCBwcm9wZXJ0eSB2YWx1ZXMgaW50byB0aGVpciBmaW5hbCBsb2NhdGlv
bnMKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7IGkrKykK
LSAgICAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0T2Zmc2V0KGdsb2JhbERhdGEsIGFub255bW91
c1Nsb3RDb3VudCArIGksIHZhbHVlc1tpXSk7CisgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVj
dE9mZnNldChnbG9iYWxEYXRhLCBpLCB2YWx1ZXNbaV0pOwogCiAgICAgICAgIG1fcHJvcGVydHlU
YWJsZS0+Y2xlYXJEZWxldGVkT2Zmc2V0cygpOwogICAgIH0KQEAgLTU3NCw3ICs1NTYsNiBAQCBz
aXplX3QgU3RydWN0dXJlOjphZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgY29uc3QgSQogICAgIG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1
ZTsKIAogICAgIHNpemVfdCBvZmZzZXQgPSBwdXRTcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIHBy
b3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSk7Ci0gICAgQVNTRVJUKG9mZnNl
dCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgaWYgKHByb3BlcnR5U3RvcmFnZVNpemUo
KSA+IHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCiAgICAgICAgIGdyb3dQcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSgpOwogICAgIHJldHVybiBvZmZzZXQ7CkBAIC01ODksNyArNTcwLDYgQEAgc2l6
ZV90IFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnMKIAogICAgIG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlID0gdHJ1
ZTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gcmVtb3ZlKHByb3BlcnR5TmFtZSk7Ci0gICAgQVNTRVJU
KG9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAgICAgcmV0dXJuIG9mZnNldDsKIH0K
IApAQCAtNjM3LDcgKzYxNyw2IEBAIHNpemVfdCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cmluZ0ltcGwqIHByb3BlcnR5TmFtZSwgdW5zaWduCiAKICAgICBhdHRy
aWJ1dGVzID0gZW50cnktPmF0dHJpYnV0ZXM7CiAgICAgc3BlY2lmaWNWYWx1ZSA9IGVudHJ5LT5z
cGVjaWZpY1ZhbHVlLmdldCgpOwotICAgIEFTU0VSVChlbnRyeS0+b2Zmc2V0ID49IG1fYW5vbnlt
b3VzU2xvdENvdW50KTsKICAgICByZXR1cm4gZW50cnktPm9mZnNldDsKIH0KIApAQCAtNjg3LDgg
KzY2Niw3IEBAIHNpemVfdCBTdHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwCiAgICAgaWYgKG1fcHJvcGVydHlUYWJs
ZS0+aGFzRGVsZXRlZE9mZnNldCgpKQogICAgICAgICBuZXdPZmZzZXQgPSBtX3Byb3BlcnR5VGFi
bGUtPmdldERlbGV0ZWRPZmZzZXQoKTsKICAgICBlbHNlCi0gICAgICAgIG5ld09mZnNldCA9IG1f
cHJvcGVydHlUYWJsZS0+c2l6ZSgpICsgbV9hbm9ueW1vdXNTbG90Q291bnQ7Ci0gICAgQVNTRVJU
KG5ld09mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CisgICAgICAgIG5ld09mZnNldCA9
IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpOwogCiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGQoUHJv
cGVydHlNYXBFbnRyeShnbG9iYWxEYXRhLCB0aGlzLCByZXAsIG5ld09mZnNldCwgYXR0cmlidXRl
cywgc3BlY2lmaWNWYWx1ZSkpOwogCkBAIC03MTIsNyArNjkwLDYgQEAgc2l6ZV90IFN0cnVjdHVy
ZTo6cmVtb3ZlKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAgICAgICAgcmV0dXJu
IG5vdEZvdW5kOwogCiAgICAgc2l6ZV90IG9mZnNldCA9IHBvc2l0aW9uLmZpcnN0LT5vZmZzZXQ7
Ci0gICAgQVNTRVJUKG9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3VudCk7CiAKICAgICBtX3By
b3BlcnR5VGFibGUtPnJlbW92ZShwb3NpdGlvbik7CiAgICAgbV9wcm9wZXJ0eVRhYmxlLT5hZGRE
ZWxldGVkT2Zmc2V0KG9mZnNldCk7CkBAIC04NDQsNyArODIxLDYgQEAgdm9pZCBTdHJ1Y3R1cmU6
OmNoZWNrQ29uc2lzdGVuY3koKQogICAgICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQg
PSBtX3Byb3BlcnR5VGFibGUtPmVuZCgpOwogICAgICAgICBmb3IgKFByb3BlcnR5VGFibGU6Oml0
ZXJhdG9yIGl0ZXIgPSBtX3Byb3BlcnR5VGFibGUtPmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0
ZXIpIHsKICAgICAgICAgICAgIEFTU0VSVCghKGl0ZXItPmF0dHJpYnV0ZXMgJiBEb250RW51bSkp
OwotICAgICAgICAgICAgQVNTRVJUKGl0ZXItPm9mZnNldCA+PSBtX2Fub255bW91c1Nsb3RDb3Vu
dCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmgKaW5kZXggMGY0ZjQ4YzgzNDEyYzEzNTBkMDkzNGMxYjVmZjYzMzc2ODI5NmZjMy4u
MzAxYmE1ZjRhYjkwMzUyNDc2ZDQyOTFhNGJlNDI4OGUxODk3ZGM5MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTYyLDExICs2MiwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogCi0gICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlw
ZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8pCisgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
LCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQog
ICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1
cmUpOwogICAgICAgICAgICAgQVNTRVJUKGNsYXNzSW5mbyk7Ci0gICAgICAgICAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5o
ZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBl
SW5mbywgYW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8pOworICAgICAgICAgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEu
aGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgdHlw
ZUluZm8sIGNsYXNzSW5mbyk7CiAgICAgICAgICAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOwogICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQpA
QCAtMTMzLDcgKzEzMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ3Jvd1By
b3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CiAgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5KCkgY29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZz
X2luZm8pOyByZXR1cm4gbV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eTsgfQotICAgICAgICB1bnNp
Z25lZCBwcm9wZXJ0eVN0b3JhZ2VTaXplKCkgY29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNs
YXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1cm4gbV9hbm9ueW1vdXNTbG90Q291bnQgKyAobV9w
cm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRhYmxlLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCkgOiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQgKyAxKSk7IH0KKyAgICAgICAgdW5zaWduZWQg
cHJvcGVydHlTdG9yYWdlU2l6ZSgpIGNvbnN0IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0lu
Zm8oKSA9PSAmc19pbmZvKTsgcmV0dXJuIChtX3Byb3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFi
bGUtPnByb3BlcnR5U3RvcmFnZVNpemUoKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29mZnNl
dCArIDEpKTsgfQogICAgICAgICBib29sIGlzVXNpbmdJbmxpbmVTdG9yYWdlKCkgY29uc3Q7CiAK
ICAgICAgICAgc2l6ZV90IGdldChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwpAQCAtMTUwLDkgKzE1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
b2lkIHNldEhhc0dldHRlclNldHRlclByb3BlcnRpZXMoYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9w
ZXJ0aWVzKSB7IG1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyA9IGhhc0dldHRlclNldHRlclBy
b3BlcnRpZXM7IH0KIAogICAgICAgICBib29sIGhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNOb25FbnVtZXJhYmxlUHJvcGVydGllczsgfQotCi0gICAgICAg
IGJvb2wgaGFzQW5vbnltb3VzU2xvdHMoKSBjb25zdCB7IHJldHVybiAhIW1fYW5vbnltb3VzU2xv
dENvdW50OyB9Ci0gICAgICAgIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCgpIGNvbnN0IHsg
cmV0dXJuIG1fYW5vbnltb3VzU2xvdENvdW50OyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5VGFibGUgPyBtX3Byb3BlcnR5VGFibGUt
PmlzRW1wdHkoKSA6IG1fb2Zmc2V0ID09IG5vT2Zmc2V0OyB9CiAKQEAgLTE5MSw3ICsxODgsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5m
byYsIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CisgICAg
ICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJv
dG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIGNvbnN0IENsYXNzSW5mbyopOwogICAgICAgICBTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBj
b25zdCBTdHJ1Y3R1cmUqKTsKIApAQCAtMjc4LDEwICsyNzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA6IDc7CiAjZW5kaWYKICAg
ICAgICAgdW5zaWduZWQgbV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQgOiAyOwotICAgICAg
ICB1bnNpZ25lZCBtX2Fub255bW91c1Nsb3RDb3VudCA6IDU7CiAgICAgICAgIHVuc2lnbmVkIG1f
cHJldmVudEV4dGVuc2lvbnMgOiAxOwogICAgICAgICB1bnNpZ25lZCBtX2RpZFRyYW5zaXRpb24g
OiAxOwotICAgICAgICAvLyAzIGZyZWUgYml0cworICAgICAgICAvLyA4IGZyZWUgYml0cwogICAg
IH07CiAKICAgICBpbmxpbmUgc2l6ZV90IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQpAQCAtMjkyLDcgKzI4OCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOwogCiAgICAg
ICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3Bl
cnR5TmFtZS5pbXBsKCkpLmZpcnN0OwotICAgICAgICBBU1NFUlQoIWVudHJ5IHx8IGVudHJ5LT5v
ZmZzZXQgPj0gbV9hbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICByZXR1cm4gZW50cnkgPyBl
bnRyeS0+b2Zmc2V0IDogbm90Rm91bmQ7CiAgICAgfQogCkBAIC0zMDQsNyArMjk5LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbm90Rm91bmQ7CiAKICAgICAgICAgUHJv
cGVydHlNYXBFbnRyeSogZW50cnkgPSBtX3Byb3BlcnR5VGFibGUtPmZpbmRXaXRoU3RyaW5nKG5h
bWUuaW1wbCgpKS5maXJzdDsKLSAgICAgICAgQVNTRVJUKCFlbnRyeSB8fCBlbnRyeS0+b2Zmc2V0
ID49IG1fYW5vbnltb3VzU2xvdENvdW50KTsKICAgICAgICAgcmV0dXJuIGVudHJ5ID8gZW50cnkt
Pm9mZnNldCA6IG5vdEZvdW5kOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZUNoYWluLmgKaW5kZXggYzhlNDJiMjZhNzJjOTZjZDAzYzQ2NjQ2YzYy
MDIxNDRiZTUwYjM2Yy4uY2RkNjRlZjZhNjFhZTQxNDQwMzNiMDdmYzFlYzE5MjcwMzFhZGQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCkBA
IC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiogaGVhZCgpIHsgcmV0dXJuIG1fdmVjdG9yLmdldCgpOyB9CiAgICAgICAgIHZvaWQg
dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgMCwgJnNfaW5mbyk7IH0KKyAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIHsgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZv
KTsgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nCmluZGV4IDE4NGJiNzk3MGY0NTRmM2Y2NThlMmYxZGYzZTBkM2YwNzNm
MmQ4MzYuLjNkNzFlNTQ2ZWFkODM2YzE2MTM1YjRmMzFmMjNiNzhiMWM5NDEwMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255
bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERvbid0IG5lZWQgYW4gYW5vbnltb3VzIHNsb3QgY291bnQgYW55
bW9yZQorCisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorICAgICAgICAoVXNlck9iamVjdElt
cDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wOS0wOSAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3Rz
IGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoNS83KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggMjZjZWVkY2RjMDUzMzNmMmIxMTcwMGNlMjFmNmFl
MzdmNzJiNjE5YS4uNDNmZjBkYThkNzU2YWZlNmZmM2Q3Yzg2MzlhOWQzMTNhYWQwNWJiYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCAmc19pbmZv
KTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNmMmNiOTU4MTNhMmYwOTMzNGM0
MzI1MTMyNDZlOWJlYjE3N2RhNC4uNzBhNzM2YzZmNGJmMmI1MGYyMzBiNzE1NmQzMzc4NTljYTRj
YTY0MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDExLTA5LTA5ICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGFub255
bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlIG9mIGFub255bW91cyBzbG90cywgdGhp
cyByZXF1aXJlZCBtb2RpZnlpbmcKKyAgICAgICAgYmluZGluZ3MgZ2VuZXJhdGlvbiB0byBhZGQg
bWVtYmVyIHZhcmlhYmxlcyBmb3IgY2FjaGVkIGF0dHJpYnV0ZXMsCisgICAgICAgIGFuZCBvdmVy
cmlkZSB2aXNpdENoaWxkcmVuIHdpdGggdGhlIG5lY2Vzc2FyeSBsb2dpYyB0byBtYXJrIHRob3Nl
CisgICAgICAgIG5ldyBtZW1iZXJzLgorCisgICAgICAgIEkgYWRkZWQgYmluZGluZ3MgZ2VuZXJh
dGlvbiB0ZXN0cyBmb3IgdGhlc2UgdmFsdWVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNB
dWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6
CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3Rvck9iamVjdDo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW1h
Z2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VFdmVu
dDo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VF
dmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpKU1dvcmtlckNvbnRleHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
SW50ZXJmYWNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9ialByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqSW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIpOgor
ICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpDUnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uv
Yy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lTWV0aG9k
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5j
ZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6Ok9iakNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGltZU1ldGhvZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAoSlND
OjpSdW50aW1lQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDExLTA5LTA5ICBE
YXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5kZXggYTdhOTA3ZGY0Y2FiZDczMWRmZjFjYjk1
ZDA4ZjVjY2E5ZjNjNzEzOS4uMTllNjQ1ZmJkZmE3OGE0Zjk0ZTBlZGQzNGFmNzk1Mjk4NDE5NzJl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9y
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKaW5kZXggYzFjODM3ZWUyNzAwMmZiNDkwNjA5ZGIxMTkzODljMTBi
YzgxOWU0OC4uYWM4ZTk4MDhhNDVjYjQyYmZmM2U2MzViYmUyNWZhN2UzMGFmYTEzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTQzo6U3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IDlhODM4
YmY5YTgzYzQ5YzFjNDFlM2NiMjc3NTEwOGFjNDk3ZjAwODEuLjAxNGI1NjliYTJiMzFlOTUzOWQ3
NmU1MzViMDVlOTc2ZjQzYmJlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaApAQCAtNzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAg
IH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmgKaW5kZXggZjc3MTgwODdjZTU4MzBhNmU1YzY2NzE5YTU4NzgwYmEzNmI5MDY0
Yi4uYTJjNDc4NTUzMjg5N2UwNjE4YzE5NTkwNDcyOTA4M2Y3NzM4MWQyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTUyLDcgKzUyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
ICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUHJv
ZmlsaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmgKaW5kZXggODdkMDI2ZGJlMDU4Y2ZmYzE4NmU1OTUyNTAzYjgyNTkzMDU3M2Q0MC4u
ZmU4YTRmZGUwOTE2MjMxZmQzN2Q2M2ZjYTE0OGQzODdiY2RlMzg4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAtNjQsNyArNjQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAor
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgMCwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAgICAgICBET01XcmFwcGVyV29ybGQqIHdvcmxk
KCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuaAppbmRleCAyZGEzZmEwMzRkNmY2MWI5OGZhMDhjZDgzNTZhNmQzNTM0YjM4
N2M5Li4zNjg1Yzg5ZTY4NDg4ZjNlMWQ4OWNlYWEzNDhjOWIxZWI0OTg4NGU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKaW5k
ZXggM2M5MzUxYzc0ZmE0MGM4YTQxY2E3MGJjOTg2YWIyOGVlMmNlZDAxOC4uMzVjNDQzNDA2NDE2
MjNjYTQwYjU1YTYwYjY1OTU4ZTliYWI3NGY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcAppbmRleCBmYjAzNWM1ZTIwNzZlYjU5NDExYTExYTU2NDQzZmVlYjRjZjZmOTFhLi44
YmU4MWJlY2NiZDRlZWM0Yjk2NjU2M2QwYjhmMjIzNGQzNzJhMTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC00Niw3
ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6
ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFs
dWUgPSBnZXRBbm9ueW1vdXNWYWx1ZShKU01lc3NhZ2VFdmVudDo6ZGF0YVNsb3QpKQorICAgIGlm
IChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKQogICAgICAgICByZXR1cm4gY2Fj
aGVkVmFsdWU7CiAKICAgICBNZXNzYWdlRXZlbnQqIGV2ZW50ID0gc3RhdGljX2Nhc3Q8TWVzc2Fn
ZUV2ZW50Kj4oaW1wbCgpKTsKQEAgLTczLDcgKzczLDcgQEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVu
dDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgfQogCiAgICAgLy8gU2F2ZSB0aGUg
cmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8gZGVzZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgot
ICAgIGNvbnN0X2Nhc3Q8SlNNZXNzYWdlRXZlbnQqPih0aGlzKS0+cHV0QW5vbnltb3VzVmFsdWUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBKU01lc3NhZ2VFdmVudDo6ZGF0YVNsb3QsIHJlc3VsdCk7Cisg
ICAgY29uc3RfY2FzdDxKU01lc3NhZ2VFdmVudCo+KHRoaXMpLT5tX2RhdGEuc2V0KGV4ZWMtPmds
b2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0x
MTUsNyArMTE1LDcgQEAgSlNDOjpKU1ZhbHVlIEpTTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2
ZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXN1bHQgPSBzZXJpYWxpemVkVmFs
dWUtPmRlc2VyaWFsaXplKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBOb25UaHJvd2luZyk7CiAgICAg
ZWxzZQogICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShl
eGVjLT5nbG9iYWxEYXRhKCksIEpTTWVzc2FnZUV2ZW50OjpkYXRhU2xvdCwgcmVzdWx0KTsKKyAg
ICBtX2RhdGEuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDY5MzlmYmY4Yjg5MWZkZTMwMjU5OGFkNjZjNTcw
OGJhZGExNzNjZmQuLjM5MjYxYTA5N2Q1NThlY2QwOTA0NmFhNjgyMTA2MWEzOGJlODhlZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgK
QEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBK
U0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAppbmRleCAwYjY2OGRmNzBlNWM5ZGYyN2Q4ODNi
MmEwZTFkYjU2N2QwNmJlN2Q2Li5iMDg2MzM2YzQ0MmQ1OGRkMzhlN2E2MzliNGJiNjBmOGFkZjBi
ZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
QmFzZS5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBz
dGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggMWYyNGI5NGQyNzkzOTYzOTIxM2E0YTI3OTUxNjkyMzgwMDllN2RmZS4u
ZTg5ZmIzZmVkNDNkMGU1ZDQzYjYyOWI0OWFjYTcxMjc5NWU3ZDAyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTgwMywx
NSArODAzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwK
ICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCiAgICAgICAgICIgICAge1xuIiAuCi0g
ICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAg
ICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cblxuIik7CiAKLSAg
ICAjIHZpc2l0IGZ1bmN0aW9uCi0gICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbikgewotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Qzo6U2xvdFZpc2l0b3ImKTtcblxuIik7Ci0gICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpP
dmVycmlkZXNWaXNpdENoaWxkcmVuIn0gPSAxOwotICAgIH0KLQogICAgICMgQ3VzdG9tIHB1c2hF
dmVudEhhbmRsZXJTY29wZSBmdW5jdGlvbgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
dmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBwdXNoRXZlbnRIYW5kbGVyU2NvcGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKikgY29uc3Q7XG5cbiIpIGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1c2hFdmVudEhhbmRsZXJTY29wZSJ9Owog
CkBAIC04NjgsMTYgKzg2MiwxOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgICRu
dW1DdXN0b21BdHRyaWJ1dGVzKysgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0gfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tR2V0dGVyIn07CiAgICAgICAgICAgICAkbnVtQ3Vz
dG9tQXR0cmlidXRlcysrIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbVNldHRlciJ9IHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQ0N1c3RvbVNldHRlciJ9OwogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7
Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICJTbG90ID0gJG51bUNh
Y2hlZEF0dHJpYnV0ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6
VW5rbm93bj4gbV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIjtcbiIpOwogICAg
ICAgICAgICAgICAgICRudW1DYWNoZWRBdHRyaWJ1dGVzKys7CisgICAgICAgICAgICAgICAgJG5l
ZWRzTWFya0NoaWxkcmVuID0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKLSAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICB1c2luZyAkcGFyZW50Q2xhc3NOYW1lIiAuICI6OnB1dEFub255bW91c1Zh
bHVlO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdXNpbmcgJHBhcmVu
dENsYXNzTmFtZSIgLiAiOjpnZXRBbm9ueW1vdXNWYWx1ZTtcbiIpOworICAgICMgdmlzaXQgZnVu
Y3Rpb24KKyAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuKSB7CisgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpTbG90VmlzaXRv
ciYpO1xuXG4iKTsKKyAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4ifSA9IDE7CiAgICAgfQorCiAgICAgaWYgKCRudW1DdXN0b21BdHRyaWJ1dGVzID4g
MCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG4gICAgLy8gQ3VzdG9tIGF0dHJp
YnV0ZXNcbiIpOwogCkBAIC05MjEsMTIgKzkxOCw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8JGlt
cGxDbGFzc05hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgfVxuIik7CiAgICAgfQotICAgIAotICAgICMgYW5vbnltb3VzIHNsb3RzCi0g
ICAgaWYgKCRudW1DYWNoZWRBdHRyaWJ1dGVzKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJwdWJsaWM6XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gJG51bUNhY2hlZEF0dHJpYnV0
ZXMgKyBCYXNlOjpBbm9ueW1vdXNTbG90Q291bnQ7XG4iKTsKLSAgICB9CiAKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7CiAgICAgIyBDb25zdHJ1Y3RvcgpAQCAtMTA0
Niw3ICsxMDM3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwKICAgICAgICAgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCiAgICAgICAgICIgICAge1xuIiAu
Ci0gICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisg
ICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBl
UHV0RnVuY3Rpb24ifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0x
NTMzLDIzICsxNTI0LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgfQog
ICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpO1xuIik7Ci0gICAgaWYgKCRudW1DYWNoZWRBdHRyaWJ1dGVzID4gMCkgewotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBmb3IgKHVuc2lnbmVkIGkgPSBCYXNlOjpBbm9ueW1vdXNT
bG90Q291bnQ7IGkgPCBBbm9ueW1vdXNTbG90Q291bnQ7IGkrKylcbiIpOwotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCksIGksIEpTVmFsdWUoKSk7XG4iKTsKLSAgICB9CiAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOwogCi0gICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbiAmJiAhJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTWFya0Z1bmN0aW9uIn0pIHsKLSAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlbihT
bG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7XG4iKTsKLSAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygp
Lm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTtcbiIpOwotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpbXBsKCktPnZpc2l0SlNFdmVudExpc3RlbmVycyh2aXNpdG9y
KTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfQotCiAg
ICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFeHRlbmRzRE9NR2xvYmFs
T2JqZWN0In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFz
c05hbWV9OjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CkBA
IC0xNjE4LDYgKzE1OTQsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CiAKKyAgICAgICAgICAgICAg
ICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVk
QXR0cmlidXRlIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgJG5lZWRzTWFya0NoaWxkcmVuID0g
MTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0eSJ9ICYmIAogICAgICAgICAg
ICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRvTm90Q2hlY2tEb21haW5TZWN1cml0eSJ9ICYmCiAgICAgICAgICAgICAgICAgICAgICAg
ICAhJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVj
a0RvbWFpblNlY3VyaXR5T25HZXQifSkgewpAQCAtMTY2Myw3ICsxNjQzLDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAkY2FjaGVJbmRleCA9ICRjdXJyZW50Q2FjaGVkQXR0cmlidXRl
OwogICAgICAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGUrKzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChKU1ZhbHVl
IGNhY2hlZFZhbHVlID0gY2FzdGVkVGhpcy0+Z2V0QW5vbnltb3VzVmFsdWUoIiAuICRjbGFzc05h
bWUgLiAiOjoiIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIlNsb3QpKVxuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoSlNWYWx1
ZSBjYWNoZWRWYWx1ZSA9IG1fIiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIuZ2V0
KCkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogCkBA
IC0xNjg4LDcgKzE2NjgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXN0ZWRU
aGlzLT5wdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksICIgLiAkY2xhc3NOYW1l
IC4gIjo6IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICJTbG90LCByZXN1bHQpO1xu
IikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hl
ZEF0dHJpYnV0ZSJ9KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgbV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIi5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHJlc3VsdDtcbiIpOwogCiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKQEAgLTIxOTIsNiArMjE3Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5j
dGlvbkNhbGwoJGZ1bmN0aW9uLCAkZnVuY3Rpb25TdHJpbmcsICRwYXJhbUluZGV4LCAiICAgICIs
ICRzdmdQcm9wZXJ0eVR5cGUsICRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
IAogICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24t
PntvdmVybG9hZHN9fSA+IDEgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVu
Y3Rpb24tPntvdmVybG9hZHN9fSkgewpAQCAtMjIwMyw2ICsyMTg0LDI5IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5k
aWZcblxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlm
ICgkbmVlZHNNYXJrQ2hpbGRyZW4gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
InZvaWQgJHtjbGFzc05hbWV9Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAm
c19pbmZvKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQ09NUElM
RV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJy
aWRlc1Zpc2l0Q2hpbGRyZW4oKSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7XG4iKTsKKyAgICAgICAgICAgIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVudFRhcmdldCJ9KSB7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wbCgpLT52aXNpdEpTRXZlbnRM
aXN0ZW5lcnModmlzaXRvcik7XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgk
bnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIChAeyRk
YXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0
ZSA9ICRfOworICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0cmlidXRlIn0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChtXyIgLiAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPm5hbWUgLiAiKVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1fIiAuICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZSAuICIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CisgICAgICAgIH0KKyAgICAgICAgZGllICJDYW4ndCBnZW5lcmF0ZSBiaW5kaW5n
IGZvciBjbGFzcyB3aXRoIGNhY2hlZCBhdHRyaWJ1dGUgYW5kIGN1c3RvbSBtYXJrLiIgaWYgKCgk
bnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIGFuZCAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tTWFya0Z1bmN0aW9uIn0pKTsKICAgICB9CiAKICAgICBpZiAoJG51bUNvbnN0
YW50cyA+IDApIHsKQEAgLTMxMTcsNyArMzEyMSw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9y
RGVjbGFyYXRpb24KIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHtcbiIpOwotICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsK
KyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
InByb3RlY3RlZDpcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAyNmRlMTgzZmViN2M2
YTQzY2FlZGI5Y2VkZWM0ZjJhNDBkZTZmYmIyLi41MDQ3YzYxMzYzNjAyYzNmNzNjYmY3YmM5NmJm
NDU5MDI5YjRmZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0
aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IERPTUNvbnN0cnVjdG9yT2JqZWN0OjpT
dHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCBiNzRkNjkxODEwMGJjZjg0ZGUw
YWU4MTQ0ZjUyYWUwY2EyODU3ZDYwLi40MzJmNzNiNzRhYTM4MWQxODFhN2MxMzE5MjI1YWFhY2Zl
MWVmZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRl
eCA0YjU4NTZlZGU0MDYyZjkwMDQ4MGZhYzk5YjI3MDAyZDA4ODVhMzg1Li4zMjZiYjJiMTc4YTg5
NjhhNGUzYzI3ZTJkYzY2MDE2ZTcyOWM0NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2lu
Zm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVt
ZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggZTM1NWFkODAw
ODhmYzZkNTg0ZDdlNWRlMjI5NzBhYWQ1ZDdmNmJlZC4uZDRkNWY2NTQxOWVkZDkwZWU5NjY1MGM5
N2IxOTJlOGZkNzg1MDNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3Io
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC03NCw3ICs3NCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCmluZGV4IGQyZDYzN2U4YWVmMDQ1NjI3NjM5YmZkNGMxZjBjM2EwZTA1ZTUwOTcuLjNi
YjMwN2U2NzliYTkyMzM0M2MxMTUyMzcyZGY0MTFjYzMzNTliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0x
MTYsNiArMTE2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxl
VmFsdWVzW10gPQogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
ICAgICB7ICJjb25kaXRpb25hbEF0dHI2IiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2
Q29uc3RydWN0b3IpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0
cnVjdG9yIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogI2VuZGlmCisgICAgeyAiY2FjaGVkQXR0cmli
dXRlMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKSwgKGludHB0
cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMiIsIERv
bnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKSwgKGludHB0cl90KTAgVEhV
TktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiZGVzY3JpcHRpb24iLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqRGVzY3JpcHRpb24pLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwK
ICAgICB7ICJpZCIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSWQpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqSWQg
VEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiaGFzaCIsIERvbnREZWxldGUgfCBSZWFkT25s
eSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpIYXNoKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCkBAIC0xMjQsNyAr
MTI2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVz
W10gPQogfTsKIAogI3VuZGVmIFRIVU5LX0dFTkVSQVRPUgotc3RhdGljIEpTQ19DT05TVF9IQVNI
VEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyAxMzQsIDEyNywgSlNUZXN0T2JqVGFi
bGVWYWx1ZXMsIDAgfTsKK3N0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rl
c3RPYmpUYWJsZSA9IHsgMTM1LCAxMjcsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBI
YXNoIHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLwogI2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRI
VU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2VuZXJhdG9yCkBAIC0xNzksNyArMTgxLDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3Rh
dGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6
U3RydWN0dXJlRmxhZ3M7CkBAIC02NzAsNiArNjcyLDMyIEBAIEpTVmFsdWUganNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFz
ZSwKIAogI2VuZGlmCiAKK0pTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNs
b3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIGlmIChKU1ZhbHVlIGNhY2hl
ZFZhbHVlID0gbV9jYWNoZWRBdHRyaWJ1dGUxLmdldCgpKQorICAgICAgICByZXR1cm4gY2FjaGVk
VmFsdWU7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRo
aXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTEo
KSA/IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgpLT5kZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSkgOiBqc051bGwoKTsKKyAgICBtX2NhY2hlZEF0dHJpYnV0ZTEuc2V0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCisKK0pTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7
CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0g
bV9jYWNoZWRBdHRyaWJ1dGUyLmdldCgpKQorICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7Cisg
ICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIoKSA/IGltcC0+
Y2FjaGVkQXR0cmlidXRlMigpLT5kZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSkgOiBqc051bGwoKTsKKyAgICBtX2NhY2hlZEF0dHJpYnV0ZTIuc2V0KGV4ZWMtPmds
b2JhbERhdGEoKSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKIEpT
VmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOwpAQCAtMTgxNSw2ICsx
ODQzLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbChFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQogCit2b2lkIEpTVGVzdE9iajo6dmlzaXRDaGlsZHJlbihTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3sKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZz
X2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7Cisg
ICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4o
KSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKKyAgICBpZiAobV9jYWNoZWRB
dHRyaWJ1dGUxKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9jYWNoZWRBdHRyaWJ1dGUxKTsK
KyAgICBpZiAobV9jYWNoZWRBdHRyaWJ1dGUyKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9j
YWNoZWRBdHRyaWJ1dGUyKTsKK30KKwogLy8gQ29uc3RhbnQgZ2V0dGVycwogCiBKU1ZhbHVlIGpz
VGVzdE9iakNPTlNUX1ZBTFVFXzAoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVu
dGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaAppbmRleCA0ZDBmNzk3YzNkYzUyNTliN2JmYzE5YTAyOTg3OTc0NjllMTdm
M2JmLi5mYjc0YjU2MDk5NzllMjY2NDM1ZDdkNTQ1OWJkNzY2YWMwMzQxOTYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBA
IC00NSwxMCArNDUsMTQgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBKU0M6OldyaXRlQmFycmllcjxK
U0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMTsKKyAgICBKU0M6OldyaXRlQmFycmllcjxK
U0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMjsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJik7CisKIAogICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVz
CiAgICAgSlNDOjpKU1ZhbHVlIGN1c3RvbUF0dHIoSlNDOjpFeGVjU3RhdGUqKSBjb25zdDsKQEAg
LTYzLDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VGVzdE9iaj4gbV9pbXBsOwogcHJv
dGVjdGVkOgogICAgIEpTVGVzdE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgUGFzc1JlZlB0cjxUZXN0T2JqPik7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBK
U0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogfTsKIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RPYmoqKTsKQEAgLTgzLDEzICs4
NywxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2
YXRlOgogICAgIEpTVGVzdE9ialByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlND
OjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsgfQogcHJvdGVjdGVkOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4gfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CiAKIC8vIEZ1bmN0aW9ucwpAQCAt
MjAxLDYgKzIwNSw4IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsCiB2b2lkIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpK
U1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNW
YWx1ZSBqc1Rlc3RPYmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlND
OjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGIwNzkzMzk4MWJjODM2MDYw
MmZlMjM5YTcxZmRiM2NlOTA1YWIzYWQuLjczMmIyNzI4MWEwOGE1MmI3MjA3ZDFmZDIyNmEzODhk
ZjJmODJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50
c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmlu
ZGV4IDZkZmE3ODEwZWMzNjMzODE5NmE3YmNmOTQzYjYyYWM4NTJhY2U5OGYuLmMxNGRkOTBiNGZi
NjY0ZTQyNmFjZTI3YjMwNjA2OGZlNWRhMzgwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsCmluZGV4IDRhY2FlNmE5MzhlODBlYzAyZGVjMDRhMDgxMGU3NzMyNTk2NTgz
ODAuLjc1YjQ5YWJjMjg0MzE1ZTMxNTcwYjk2OWJiMTU5Y2QyYTE4N2M5ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTE0Niw2
ICsxNDYsMTEgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PUNvbmRpdGlvbjF8Q29uZGl0aW9uMl0gVGVzdE9iamVjdENDb25zdHJ1Y3RvciBjb25kaXRpb25h
bEF0dHI2OwogCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMp
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVk
QXR0cmlidXRlMTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVd
IGFueSBjYWNoZWRBdHRyaWJ1dGUyOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFRFU1RJTkdfVjgp
IHx8IGRlZmluZWQoVEVTVElOR19KUykKICAgICAgICAgLy8gT3ZlcmxvYWRzCiAgICAgICAgIHZv
aWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFyZywgaW4gRE9NU3RyaW5nIHN0
ckFyZyk7CiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFy
ZywgaW4gW09wdGlvbmFsXSBsb25nIGludEFyZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDU2ZDZjN2E0ODM4
YmQ4ODUxMDQ0MDAwNGE5NGMyMWMxMGYwOGU3OGUuLjhkZDY2NjJmNDE0MmVhNzIyZTY0NjFiZTQ1
MTgwODFmZTg1ZTZiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
VjhJc29sYXRlZENvbnRleHQuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhU
ZXN0Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOGFueS5oIgogI2luY2x1ZGUgIlY4aW50LmgiCiAj
aW5jbHVkZSAiVjhsb2cuaCIKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC01ODAsNiArNTgx
LDM0IEBAIHN0YXRpYyB2b2lkIGNvbmRpdGlvbmFsQXR0cjNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6CiAKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0
aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gY2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVz
dE9iai5jYWNoZWRBdHRyaWJ1dGUxLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGlt
cC0+Y2FjaGVkQXR0cmlidXRlMSgpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVy
ID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAg
ICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpKTsKKyAgICAgICAgaWYgKCF3cmFwcGVy
LklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZl
cmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTEiLCB3cmFwcGVyKTsKKyAgICB9
CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai5jYWNoZWRBdHRyaWJ1dGUyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+
Y2FjaGVkQXR0cmlidXRlMigpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0g
cmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAg
ICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklz
RW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVu
Y2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTIiLCB3cmFwcGVyKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5h
YmxlZEF0UnVudGltZUF0dHIxQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLmVuYWJsZWRBdFJ1bnRpbWVBdHRyMS5fZ2V0Iik7CkBAIC0xMjc3LDYgKzEzMDYsMTAgQEAg
c3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgLy8g
QXR0cmlidXRlICdjb25kaXRpb25hbEF0dHI2JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
J0NvbmRpdGlvbmFsJykKICAgICB7ImNvbmRpdGlvbmFsQXR0cjYiLCBUZXN0T2JqSW50ZXJuYWw6
OlRlc3RPYmpDb25zdHJ1Y3RvckdldHRlciwgMCwgJlY4VGVzdE9iamVjdEM6OmluZm8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6OlJlYWRPbmx5KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAj
ZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorICAgIC8v
IEF0dHJpYnV0ZSAnY2FjaGVkQXR0cmlidXRlMScgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQorICAgIHsiY2FjaGVkQXR0cmlidXRlMSIsIFRl
c3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAorICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVkQXR0cmlidXRlMicgKFR5cGU6ICdyZWFkb25s
eSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQorICAgIHsiY2FjaGVkQXR0
cmlidXRlMiIsIFRlc3RPYmpJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIsIDAs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnZGVzY3JpcHRpb24nIChUeXBlOiAn
cmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7ImRlc2NyaXB0aW9uIiwgVGVz
dE9iakludGVybmFsOjpkZXNjcmlwdGlvbkF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAog
ICAgIC8vIEF0dHJpYnV0ZSAnaWQnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IGVmMTljOGE2ZWIzMmUz
NGU4N2E2MTA3OGI4NDVlMGU2MDBlN2IzMzYuLmY5ODRhNWNhOGE3ZWJhNmIzNDc4MzBlMTZjMTZh
YmQzOGJlMmQwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1l
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApA
QCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2MvY19pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNl
LmNwcAppbmRleCBmY2QyNDJhNWE5YzU4ZWI5N2YyODdjYzA3YTlhOGEzZGIyODlhNGMxLi5kZTYx
NDQ5NTE3MmRjYmRhNWVhOTNiMDEwNDEwMTRjMjYxYzY3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvYy9jX2luc3RhbmNlLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3Qg
Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
anNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9K
YXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDdlNjlmYmViNTdlMDhjMmIxMDVhYzMzNmU2NzI0ODNh
YzVmOWEzYWUuLjM5NzIwMDk3ZDVhMmEyODc1ZjM3MGM5ZmIwNGVjMDI2YzEwNjAwMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApA
QCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAm
c19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCmlu
ZGV4IGJiMTc5Mzg2NGJhMzM1MjAxZmU4MDEzOWVhZmFkMzNkZjcyNzYxMzguLjhmYTQ1MmVlOGRi
NzRkNjlhNzJlOTE2NjhmZTI4MWRmNDcwZGU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgK
aW5kZXggMDM0MGMwNTFiZTliMTBjZWIxNDhmNTg0MDJmZmRjZmZiYjJiZDE5Yi4uZGQ3MzM5MGQ3
N2RlMWE5MzhhY2VjODFmYTMyMWE1NmI1NDg0NDk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1t
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQppbmRleCBmMmQ3
OWE2NTEzYmQ3NGI5YjgxYTE1MjljNDM3Nzk3OWZjMjdlZWRkLi5hNmFhZjYwNTM4ZGExMDY3NzY0
OTk2YjAyMjlkZjY4NTZmZGMyZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX2luc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfaW5zdGFuY2UubW0KQEAgLTE4Myw3ICsxODMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3Qg
Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
LmgKaW5kZXggMzQ2NDg0OGFiZGYyNjI5ODIzMWRmMmI3NmZiNThmNTI3YTE5ZDBkYS4uODM4MGI5
ZGFhMTIzOTU0NDRhMWYwYjFhYjczZjM1YWJjYjUxMTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAppbmRleCBmYzFhMzQ2M2M4MDQx
ZmQzOTgwY2Y0Yzg1ZWJlNTFhYTYzYWJhNDZkLi42YTQ4YjE0NmUwZjY1ZWRjZWUyMDk2ZGZjZDMw
ZDFiMjdhNWFjM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5z
dGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAK
QEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggNjg3NDFiNDliZGQ4NWEyOTM5ZWRlYzMzM2Y0
Njg4NjQwZTkxNTZjYS4uZjBiMjZhOGM1Y2Q4Nzk3YjdiYmQ1OTg5OWQ4ZjNhZDNhNmM0ZmZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcApAQCAt
MjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCAgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksICZz
X2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmgKaW5kZXggOGI2ZjAzNGRjMzFmNTBkOTliZDFlMmQ4ZTNmZWM4NmE2MjJmMWViZC4uMjRk
ZTI1NWMxNDgxZTQ2NmE0Yzc3NzM3MTBjZmVlNDUzZTViODJjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCA2Y2I4ZWIzM2Q3ZGM2NWIwZDQzNmEw
YWJjZmEwZmZhZDhmYWM4ODVkLi5hMDg3N2EwNjJkZDY5OWMxNzVkZTE2ZGYzY2FmYWFkZjEwY2M4
ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTcyLDcgKzcyLDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0K
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCA0
NGIwODdhZDJiN2Q4MmFjZWRhYTgyZmFkMDNkZDFiNjhlMjg1OTY3Li5kMWFiOTlkZTdlYjAyZGYy
NGM0ZjA0YjQ1MjY2Zjg2NGNiMGYyMTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCmluZGV4IDg3YjdmNzA2Njc5YTI2NWMyODVlN2E2NWE5YjZhOWE4NGMw
NjJlOTguLmEyYzkyODg4MzdiZWMzZjJkZmVkM2RjOTRjNmNkZTYyM2Y0OTEwOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCA3ZTE1ZWQyMzVhYmVkMzg3N2ZiYTAxZDY3OGY0MjYyNzk2
MGI2NGU2Li42NmQzMjQxNDZmYTEwZTgwZTk5NGJiMDgzYWM2MDY3OGNkYjc3ZTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDkgIE9saXZlciBIdW50ICA8b2xp
dmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0
b3JhZ2UgZnJvbSBqc29iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY3ODgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2Ugb2YgQW5vbnltb3VzU2xvdENvdW50CisKKyAgICAg
ICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
cm94eVJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGlt
ZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wOS0wOSAgQ2hyaXMgTWFycmluICA8
Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGRvZXNu
J3QgdGhyb3R0bGUgb24gTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCAxZGYwMmRmYzZhMWE1ZWZiMWJjMjAyMmI4Njc0YWUx
YzM3NThmZjgwLi5hOGEyN2E5MmFlNDViMGEwZDZhM2U0ZTYyYTE1OWMzNzk0ZTM2OGFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
QEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVP
YmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9i
amVjdC5oCmluZGV4IDVhZTk4Mzg1MDQwNGY1MWM2NDZlODJmYjcyODZjNzVhOTVkZDczNTAuLjFi
NDBjMWI0ZWYxNzBhYTg1ZjNjMjcwZDBmN2E0Yzg2YmM3YWE5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAg
IH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggM2E2YTBhOWFlN2Q1ZTY1OWUxOWNkNDQ5YTM2ODQ5NWU2YzhhNmU0Ny4uYjdhNDAzMmZhZThm
M2I4Mzc4ZjZhZTQ0MmYwMDQyNzhjNmMwMzAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDExLTA5LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIGFub255bW91cyBzdG9yYWdlIGZyb20ganNvYmplY3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgdXNl
IG9mIEFub255bW91c1Nsb3RDb3VudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QTWV0aG9kLmg6CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToK
KwogMjAxMS0wOS0wOSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGRvZXNuJ3QgdGhyb3R0bGUgb24gTWFjCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhv
ZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRo
b2QuaAppbmRleCBkYzViZTdjNzk4YWEzMDZjZjFlYWQwYTU0ZDJjYTE0YTc0ZDNjYTA0Li45Mjk5
MDFiOWE1ZWZhMzAxOTVmODQ0MTJhY2M2NzkyYWEzMGExNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKQEAg
LTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwog
ICAgIH0KIAogICAgIHZpcnR1YWwgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxE
YXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCBiNmVkZmE1YTc2NTA0ZGMwMTk5ZTZmZDBlOWVhYTFi
YzVjZjYwOTlmLi5lNjVjODlkZTVlY2YwYjI2MzBjODIzMTQ5MzkwNjJhZTYzNjJlZmZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBzdGF0aWMg
SlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwo=
</data>
<flag name="review"
          id="103558"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="103565"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>