<?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>232513</bug_id>
          
          <creation_ts>2021-10-29 15:43:08 -0700</creation_ts>
          <short_desc>[JSC] Clean up Baseline StructureStubInfo management</short_desc>
          <delta_ts>2021-10-29 19:09:21 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810294</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 15:43:08 -0700</bug_when>
    <thetext>[JSC] Do not allocate StructureStubInfo twice for Baseline JIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810303</commentid>
    <comment_count>1</comment_count>
      <attachid>442878</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 15:58:28 -0700</bug_when>
    <thetext>Created attachment 442878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810330</commentid>
    <comment_count>2</comment_count>
      <attachid>442884</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 17:13:32 -0700</bug_when>
    <thetext>Created attachment 442884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810332</commentid>
    <comment_count>3</comment_count>
      <attachid>442885</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 17:24:15 -0700</bug_when>
    <thetext>Created attachment 442885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810353</commentid>
    <comment_count>4</comment_count>
      <attachid>442885</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-29 18:00:27 -0700</bug_when>
    <thetext>Comment on attachment 442885
Patch

Nice. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810354</commentid>
    <comment_count>5</comment_count>
      <attachid>442885</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 18:18:42 -0700</bug_when>
    <thetext>Comment on attachment 442885
Patch

JSC test pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810366</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-29 19:08:27 -0700</bug_when>
    <thetext>Committed r285070 (243712@main): &lt;https://commits.webkit.org/243712@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442885.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810367</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-29 19:09:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/84831239&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442878</attachid>
            <date>2021-10-29 15:58:28 -0700</date>
            <delta_ts>2021-10-29 17:13:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232513-20211029155827.patch</filename>
            <type>text/plain</type>
            <size>54622</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NTM2NGQ5NzJjYzg4OThmMGM4MWZjYTAxNmFmYTYxZGQyNGE3ZmU4Li45YjZkYWUyMGVmOWVkZTFl
N2M5MWI1MjM4YjQxMTg3ODM1MWZlZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDQgQEAKKzIwMjEtMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEbyBub3QgYWxsb2NhdGUgU3RydWN0dXJlU3R1YkluZm8gdHdp
Y2UgZm9yIEJhc2VsaW5lIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hpbGUgdW5saW5rZWQgQmFzZWxpbmUgSklUIGFsbG9jYXRlcyBTdHJ1Y3R1
cmVTdHViSW5mbyB3aGVuIGluc3RhbGxpbmcgQnNlbGluZUpJVENvZGUgdG8gQ29kZUJsb2NrLAor
ICAgICAgICB3ZSBhbHNvIGFjY2lkZW50YWxseSBhbGxvY2F0ZSBTdHJ1Y3R1cmVTdHViSW5mbyB3
aGVuIGNyZWF0aW5nIEpJVElubGluZUNhY2hlR2VuZXJhdG9ycy4gV2hlbiBjb21waWxpbmcKKyAg
ICAgICAgbm9uIG9wdGltaXppbmcgSklULCB3ZSBzaG91bGQgbm90IGFsbG9jYXRlIGl0LgorCisg
ICAgICAgIDEuIFdlIHNob3VsZCBrZWVwIEdlbmVyYXRvcjo6bV9zdHViSW5mbyBudWxscHRyLiBB
bmQgd2UgYWRkIHNvbWUgYXNzZXJ0aW9ucyBhYm91dCBpdCBzaW5jZSBpdCBzaG91bGQgbm90Cisg
ICAgICAgICAgIGJlIGFsbG9jYXRlZCBhbmQgdXNlZC4KKyAgICAgICAgMi4gV2UgZm91bmQgdGhh
dCBwcm9wZXJ0eUlzSW50MzIgZm9yIG9wX2dldF9ieV92YWwgYW5kIG9wX3B1dF9ieV92YWwgaXMg
bm90IGFwcHJvcHJpYXRlbHkgY29uZmlndXJlZCBmb3IKKyAgICAgICAgICAgVW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbyAoaXQgd2FzIGFjY2lkZW50YWxseSBzZXQgZm9yIHRoZSBhYm92ZSB3YXN0
ZWQgU3RydWN0dXJlU3R1YkluZm8pLiBUaGlzIHBhdGNoCisgICAgICAgICAgIGF0dGFjaGVzIHRo
YXQgaW5mb3JtYXRpb24uCisgICAgICAgIDMuIFdlIGtlZXAgVW5saW5rZWRTdHJ1Y3R1cmVTdHVi
SW5mbyBpbiBhIEZpeGVkVmVjdG9yIGluIEJhc2VsaW5lSklUQ29kZS4gV2hpbGUgd2UgbmVlZCB0
byBrZWVwIHBvaW50ZXIKKyAgICAgICAgICAgaWRlbnRpdHkgd2hpbGUgY29tcGlsaW5nIEJhc2Vs
aW5lIEpJVCwgYWZ0ZXIgdGhhdCwgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8ga2VlcCB0aGF0IHNpbmNl
IHRoZXNlIHBvaW50ZXJzCisgICAgICAgICAgIGFyZSBub3QgZW1iZWRkZWQgaW50byBKSVQgY29k
ZS4gVGhpcyBwYXRjaCBhbGxvY2F0ZXMgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyB2aWEgU2Vn
bWVudGVkVmVjdG9yIGR1cmluZworICAgICAgICAgICBjb21waWxhdGlvbiB0byBrZWVwIHBvaW50
ZXIgaWRlbnRpdHksIGJ1dCB3aGVuIGZpbmFsaXppbmcsIHdlIGFsbG9jYXRlIEZpeGVkVmVjdG9y
IGFuZCBjb3B5IHRoZSBhYm92ZSBjb250ZW50CisgICAgICAgICAgIHRvIHRoYXQgdG8ga2VlcCBt
ZW1vcnkgYXMgc21hbGwgYXMgcG9zc2libGUuIFdlIHNob3VsZCBkbyBzaW1pbGFyIHRoaW5nIHRv
IFVubGlua2VkQ2FsbExpbmtJbmZvLCBTdHJ1Y3R1cmVTdHViSW5mbyBldGMuCisgICAgICAgICAg
IGZvciBiYXNlbGluZSwgYnV0IHRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gYSBzZXBhcmF0ZSBwYXRj
aC4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNlbGluZUNvZGUpOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmFkZE9wdGltaXppbmdTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6YWRkU3R1YkluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5o
OgorICAgICAgICAqIGJ5dGVjb2RlL1B1dEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjppbml0
aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8pOgorICAgICAgICAqIGJ5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICogaml0L0Jhc2VsaW5lSklUQ29kZS5oOgor
ICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmFkZFVubGlua2VkU3Ry
dWN0dXJlU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpKSVQ6OmxpbmspOgorICAgICAgICAqIGpp
dC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2l0ZXJh
dG9yX25leHQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvcik6CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpmaW5hbGl6ZSk6
CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJ
VEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRH
ZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcik6Cisg
ICAgICAgIChKU0M6OkpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aCk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6OkpJVERlbEJ5VmFsR2VuZXJh
dG9yKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgpOgorICAgICAgICAoSlNDOjpKSVREZWxCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAg
ICAgICAoSlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpKSVREZWxCeUlkR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6SklURGVsQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgIChKU0M6OkpJVERlbEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6
SklUSW5CeVZhbEdlbmVyYXRvcjo6SklUSW5CeVZhbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6
OkpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpK
SVRJbkJ5VmFsR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJVEluQnlJZEdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVEluc3RhbmNlT2ZH
ZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRJbnN0
YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5z
dGFuY2VPZkdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeVZhbEdl
bmVyYXRvcjo6SklUR2V0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeVZh
bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFs
R2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5VmFsR2VuZXJhdG9y
OjpKSVRQdXRCeVZhbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5VmFsR2VuZXJh
dG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUUHV0QnlWYWxHZW5lcmF0
b3I6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJh
dG9yOjpKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQ
cml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAo
SlNDOjpKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAg
KiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
cy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2lu
c3RhbmNlb2YpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5l
cmF0ZUdldEJ5VmFsU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X3By
aXZhdGVfbmFtZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zZXRfcHJpdmF0ZV9icmFu
ZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19wcml2YXRlX2JyYW5kKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0
X3ByaXZhdGVfbmFtZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9kZWxfYnlfaWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2RlbF9ieV9pZCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9kZWxfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19v
cF9kZWxfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRf
YnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaW5fYnlfaWQpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfaW5fYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF9pbl9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRIYXNQcml2YXRlKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCk6CisKIDIwMjEt
MTAtMjggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3Qg
Y2FsbCB0eXBlKCkgb24gU3RydWN0dXJlLCBpbnN0ZWFkIGNhbGwgdHlwZSgpIG9uIGl0cyB0eXBl
SW5mbygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmlu
ZGV4IDQ0NGExMDU2NzE3MmNhOTk5ZjU1MzA2NTBiM2M5NzhmMDNiZmQ3ODIuLjE5MDU5NzBjYWVj
ODZjZGM4MjU0ODhkYTVkNDhiNDBlNWI4ZTBkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC03OTYsNyArNzk2LDcgQEAgdm9pZCBDb2RlQmxv
Y2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGpp
dENvZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBjYXNlIEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm86IHsKLSAgICAg
ICAgICAgICAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvJiB1bmxpbmtlZFN0dWJJbmZvID0g
KnN0YXRpY19jYXN0PFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qPihlbnRyeS5wb2ludGVyKCkp
OworICAgICAgICAgICAgICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1
YkluZm8gPSBqaXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zW2JpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KGVudHJ5LnBvaW50ZXIoKSldOwogICAgICAgICAgICAgICAgIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IGppdERhdGEubV9zdHViSW5mb3MuYWRkKHVubGlua2VkU3R1YkluZm8uYWNj
ZXNzVHlwZSwgQ29kZU9yaWdpbih1bmxpbmtlZFN0dWJJbmZvLmJ5dGVjb2RlSW5kZXgpKTsKICAg
ICAgICAgICAgICAgICBzdHViSW5mby0+aW5pdGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0
dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1YkluZm8pOwogICAgICAgICAgICAgICAgIGppdERhdGEu
bV9qaXRDb25zdGFudFBvb2xbaV0gPSBzdHViSW5mbzsKQEAgLTE3MDcsNyArMTcwNyw3IEBAIHZv
aWQgQ29kZUJsb2NrOjpnZXRJQ1N0YXR1c01hcChJQ1N0YXR1c01hcCYgcmVzdWx0KQogfQogCiAj
aWYgRU5BQkxFKEpJVCkKLVN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmZv
KEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQorU3RydWN0dXJl
U3R1YkluZm8qIENvZGVCbG9jazo6YWRkT3B0aW1pemluZ1N0dWJJbmZvKEFjY2Vzc1R5cGUgYWNj
ZXNzVHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQogewogICAgIENvbmN1cnJlbnRKU0xvY2tl
ciBsb2NrZXIobV9sb2NrKTsKICAgICByZXR1cm4gZW5zdXJlSklURGF0YShsb2NrZXIpLm1fc3R1
YkluZm9zLmFkZChhY2Nlc3NUeXBlLCBjb2RlT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCBhMGViODk1MTQ3Y2ZmN2VlZmEwNzMyYzg0Y2Rk
ZWVmZDg2YTk3MDE0Li41YTk3NTI1ODliNDZiM2M5Yzk5YzQ3NDA0YWExOGY0MmQ5NDFlNTg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yODQsNyAr
Mjg0LDcgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mSklURGF0YSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDb2Rl
QmxvY2ssIG1faml0RGF0YSk7IH0KIAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5m
byhBY2Nlc3NUeXBlLCBDb2RlT3JpZ2luKTsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkT3B0
aW1pemluZ1N0dWJJbmZvKEFjY2Vzc1R5cGUsIENvZGVPcmlnaW4pOwogCiAgICAgLy8gTyhuKSBv
cGVyYXRpb24uIFVzZSBnZXRJQ1N0YXR1c01hcCgpIHVubGVzcyB5b3UgcmVhbGx5IG9ubHkgaW50
ZW5kIHRvIGdldCBvbmUgc3R1YiBpbmZvLgogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBmaW5kU3R1
YkluZm8oQ29kZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUHV0S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEtpbmQu
aAppbmRleCBkNmUzNWJjNGU4OGYwMDc1YTMzMzY5YmZmMWMyN2E3YzYwZjYzNmE0Li4yNjBkMDcw
MDZhNzQ0M2Y5YjJiZTU0ZDM3Yzc5N2JjMTAxYjFkZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QdXRLaW5kLmgKQEAgLTI3LDYgKzI3LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLWVudW0gY2xhc3MgUHV0S2luZCB7IERpcmVjdCwgTm90RGlyZWN0LCBEaXJlY3RQcml2YXRl
RmllbGREZWZpbmUsIERpcmVjdFByaXZhdGVGaWVsZFNldCB9OworZW51bSBjbGFzcyBQdXRLaW5k
IDogdWludDhfdCB7IERpcmVjdCwgTm90RGlyZWN0LCBEaXJlY3RQcml2YXRlRmllbGREZWZpbmUs
IERpcmVjdFByaXZhdGVGaWVsZFNldCB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCmlu
ZGV4IGZkMzRiZWNjZmYyYjBlOGI2NDZkY2M3MGU0YzJjMzg4ZGU1NDVjZGIuLmIxYmRiMTJjODJh
MGVmM2UwZWViMWYwZTU4OTI2ZGYwMjAwNTZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcApAQCAtNDQxLDYgKzQ0MSw3
IEBAIHZvaWQgU3RydWN0dXJlU3R1YkluZm86OmluaXRpYWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1
cmVTdHViSW5mbyhDb2RlQmxvY2sqLCBVbmxpCiAgICAgY2FsbFNpdGVJbmRleCA9IENhbGxTaXRl
SW5kZXgoQnl0ZWNvZGVJbmRleCh1bmxpbmtlZFN0dWJJbmZvLmJ5dGVjb2RlSW5kZXgub2Zmc2V0
KCkpKTsKICAgICBjb2RlT3JpZ2luID0gQ29kZU9yaWdpbih1bmxpbmtlZFN0dWJJbmZvLmJ5dGVj
b2RlSW5kZXgpOwogICAgIG1fY29kZVB0ciA9IHNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKKyAgICBw
cm9wZXJ0eUlzSW50MzIgPSB1bmxpbmtlZFN0dWJJbmZvLnByb3BlcnR5SXNJbnQzMjsKIAogICAg
IHVzZWRSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCk7
CiAgICAgaWYgKGFjY2Vzc1R5cGUgPT0gQWNjZXNzVHlwZTo6R2V0QnlJZCAmJiB1bmxpbmtlZFN0
dWJJbmZvLmJ5dGVjb2RlSW5kZXguY2hlY2twb2ludCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IDMzNjg1YmMxMzc5
YmUyNWNkMmE4YTFjNWZlOTA3ZDI4OWEzMzM0MTAuLjk5NmY1OWFiODU1OWY4ZmRkNWU5ZjZmNjA4
MzZjZTMxMDM3ZWMwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC00NjUsNiArNDY1LDcgQEAgc3RydWN0IFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8gewogICAgIFB1dEtpbmQgcHV0S2luZDsKICAgICBQcml2YXRlRmll
bGRQdXRLaW5kIHByaXZhdGVGaWVsZFB1dEtpbmQgeyBQcml2YXRlRmllbGRQdXRLaW5kOjpub25l
KCkgfTsKICAgICBFQ01BTW9kZSBlY21hTW9kZSB7IEVDTUFNb2RlOjpzbG9wcHkoKSB9OworICAg
IGJvb2wgcHJvcGVydHlJc0ludDMyIHsgZmFsc2UgfTsKICAgICBCeXRlY29kZUluZGV4IGJ5dGVj
b2RlSW5kZXg7CiAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0
YXJ0OyAvLyBUaGlzIGlzIGVpdGhlciB0aGUgc3RhcnQgb2YgdGhlIGlubGluZSBJQyBmb3IgKmJ5
SWQgY2FjaGVzLiBvciB0aGUgbG9jYXRpb24gb2YgcGF0Y2hhYmxlIGp1bXAgZm9yICdpbnN0YW5j
ZW9mJyBjYWNoZXMuCiAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gZG9u
ZUxvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9CYXNlbGlu
ZUpJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQmFzZWxpbmVKSVRDb2RlLmgK
aW5kZXggMTVlOTY3YzEwZWZjNGI2NzE0NGNlYmJmYzY3NTAyYmJmNjZjYmQ2Mi4uZjY1N2M0YmEw
ZWY2MmJlZjBiMmY0NWQ3NjliNTQzNWQwMWJkZGMxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9CYXNlbGluZUpJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Jhc2VsaW5lSklUQ29kZS5oCkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIEJhc2VsaW5l
SklUQ29kZSA6IHB1YmxpYyBEaXJlY3RKSVRDb2RlLCBwdWJsaWMgTWF0aElDSG9sZGVyIHsKIAog
ICAgIEJhZzxVbmxpbmtlZENhbGxMaW5rSW5mbz4gbV91bmxpbmtlZENhbGxzOwogICAgIEJhZzxD
YWxsTGlua0luZm8+IG1fZXZhbENhbGxMaW5rSW5mb3M7Ci0gICAgQmFnPFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8+IG1fdW5saW5rZWRTdHViSW5mb3M7CisgICAgRml4ZWRWZWN0b3I8VW5saW5r
ZWRTdHJ1Y3R1cmVTdHViSW5mbz4gbV91bmxpbmtlZFN0dWJJbmZvczsKICAgICBGaXhlZFZlY3Rv
cjxTaW1wbGVKdW1wVGFibGU+IG1fc3dpdGNoSnVtcFRhYmxlczsKICAgICBGaXhlZFZlY3RvcjxT
dHJpbmdKdW1wVGFibGU+IG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlczsKICAgICBKSVRDb2RlTWFw
IG1faml0Q29kZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBiMTc5Yzg1MTUw
ZGQ5YzdkMzk5ZTBjYzczYWE5ZmU2NDRiYzgxMDA3Li5kYmM3ODRiYzZkNTVjN2ZkMDkxYjhiNmRh
NjQyMThiNzEzZjNlN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC05Myw2ICs5
MywxNCBAQCBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IEpJVDo6YWRkVG9Db25zdGFudFBvb2wo
SklUQ29uc3RhbnRQb29sOjpUeXBlIHR5cGUsIHZvaQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K3N0ZDo6dHVwbGU8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyosIEpJVENvbnN0YW50UG9vbDo6
Q29uc3RhbnQ+IEpJVDo6YWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpCit7CisgICAgdm9p
ZCogdW5saW5rZWRTdHViSW5mb0luZGV4ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2Fz
dDx1aW50cHRyX3Q+KG1fdW5saW5rZWRTdHViSW5mb3Muc2l6ZSgpKSk7CisgICAgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSAmbV91bmxpbmtlZFN0dWJJbmZvcy5hbGxvYygp
OworICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29u
c3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHVubGlu
a2VkU3R1YkluZm9JbmRleCk7CisgICAgcmV0dXJuIHN0ZDo6dHVwbGUgeyBzdHViSW5mbywgc3R1
YkluZm9JbmRleCB9OworfQorCiAjaWYgRU5BQkxFKERGR19KSVQpCiB2b2lkIEpJVDo6ZW1pdEVu
dGVyT3B0aW1pemF0aW9uQ2hlY2soKQogewpAQCAtOTkzLDcgKzEwMDEsOSBAQCB2b2lkIEpJVDo6
bGluaygpCiAKICAgICBtX2ppdENvZGUtPm1fdW5saW5rZWRDYWxscyA9IFdURk1vdmUobV91bmxp
bmtlZENhbGxzKTsKICAgICBtX2ppdENvZGUtPm1fZXZhbENhbGxMaW5rSW5mb3MgPSBXVEZNb3Zl
KG1fZXZhbENhbGxMaW5rSW5mb3MpOwotICAgIG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZv
cyA9IFdURk1vdmUobV91bmxpbmtlZFN0dWJJbmZvcyk7CisgICAgbV9qaXRDb2RlLT5tX3VubGlu
a2VkU3R1YkluZm9zID0gRml4ZWRWZWN0b3I8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbz4obV91
bmxpbmtlZFN0dWJJbmZvcy5zaXplKCkpOworICAgIGlmIChtX2ppdENvZGUtPm1fdW5saW5rZWRT
dHViSW5mb3Muc2l6ZSgpKQorICAgICAgICBzdGQ6OmNvcHkobV91bmxpbmtlZFN0dWJJbmZvcy5i
ZWdpbigpLCBtX3VubGlua2VkU3R1YkluZm9zLmVuZCgpLCBtX2ppdENvZGUtPm1fdW5saW5rZWRT
dHViSW5mb3MuYmVnaW4oKSk7CiAgICAgbV9qaXRDb2RlLT5tX3N3aXRjaEp1bXBUYWJsZXMgPSBX
VEZNb3ZlKG1fc3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9qaXRDb2RlLT5tX3N0cmluZ1N3aXRj
aEp1bXBUYWJsZXMgPSBXVEZNb3ZlKG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcyk7CiAgICAgbV9q
aXRDb2RlLT5tX2ppdENvZGVNYXAgPSBqaXRDb2RlTWFwQnVpbGRlci5maW5hbGl6ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKaW5kZXggNDY5ZDNlMDgyNjk3N2FkMjNmZjExMWQ1YTZlZmQ4ZTFl
Y2IwMDhlZS4uNjUwOTQ2ZDFlNTdjYTlkNWE2NDFkOTc1N2RmMzMzMjFjOTdiZmVjYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCkBAIC05NTcsNiArOTU3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgcmVzZXRTUCgpOwogCiAgICAgICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3Rh
bnQgYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlLCB2b2lkKiBwYXlsb2Fk
ID0gbnVsbHB0cik7CisgICAgICAgIHN0ZDo6dHVwbGU8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5m
byosIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQ+IGFkZFVubGlua2VkU3RydWN0dXJlU3R1Yklu
Zm8oKTsKIAogICAgICAgICBJbnRlcnByZXRlciogbV9pbnRlcnByZXRlcjsKIApAQCAtMTAyOSw3
ICsxMDMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpJVENvbnN0YW50UG9vbDo6Q29u
c3RhbnQgbV9nbG9iYWxPYmplY3RDb25zdGFudCB7IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKSB9OwogICAgICAgICBCYWc8VW5saW5rZWRDYWxsTGlua0luZm8+IG1fdW5saW5r
ZWRDYWxsczsKICAgICAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9ldmFsQ2FsbExpbmtJbmZvczsK
LSAgICAgICAgQmFnPFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8+IG1fdW5saW5rZWRTdHViSW5m
b3M7CisgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvPiBt
X3VubGlua2VkU3R1YkluZm9zOwogICAgICAgICBGaXhlZFZlY3RvcjxTaW1wbGVKdW1wVGFibGU+
IG1fc3dpdGNoSnVtcFRhYmxlczsKICAgICAgICAgRml4ZWRWZWN0b3I8U3RyaW5nSnVtcFRhYmxl
PiBtX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwuY3BwCmluZGV4IDM0N2U2MGUxZmQ5OWZjOGNiMDJhMzg2MTkzYzVlYTM2ZDBjZjY1ZjcuLjU3
ZGM2NjE5MDA4NTRkNjUwMzBjZjI1YzVhODQyOWIxZDY1MDZkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDYWxsLmNwcApAQCAtNDkwLDEwICs0OTAsOSBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9pdGVyYXRvcl9vcGVuKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAg
bnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkp
LCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIENhY2hl
YWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JbW1vcnRhbElkZW50aWZpZXIoaWRlbnQtPmltcGwo
KSksIGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIEFjY2Vzc1R5cGU6OkdldEJ5SWQp
OwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2Vk
U3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0g
YWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBl
ID0gQWNjZXNzVHlwZTo6R2V0QnlJZDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1f
Ynl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5k
ZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0
dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5k
ZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5m
bzsKIApAQCAtNjAxLDEwICs2MDAsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9uZXh0
KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAgICAgIG51bGxwdHIsIEpJ
VFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgoQnl0ZWNvZGVJbmRleChtX2J5dGVjb2RlSW5kZXgub2Zmc2V0KCkpKSwgcHJlc2VydmVk
UmVncywKICAgICAgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JbW1vcnRh
bElkZW50aWZpZXIodm0oKS5wcm9wZXJ0eU5hbWVzLT5kb25lLmltcGwoKSksIHJldHVyblZhbHVl
SlNSLCBkb25lSlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAKLSAgICAg
ICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1Yklu
Zm9zLmFkZCgpOworICAgICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFk
ZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICAgICAgc3R1YkluZm8tPmFjY2Vzc1R5
cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkOwogICAgICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRl
eCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICAgICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBz
dHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpT
dHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgICAgICBnZW4ubV91bmxpbmtlZFN0dWJJ
bmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgICAgIGdlbi5tX3VubGlua2Vk
U3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtNjM0LDEwICs2MzIsOSBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9pdGVyYXRvcl9uZXh0KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAg
ICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVJbmRleCksIENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChtX2J5dGVjb2RlSW5kZXgub2Zm
c2V0KCkpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAg
ICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUltbW9ydGFsSWRlbnRpZmllcih2
bSgpLnByb3BlcnR5TmFtZXMtPnZhbHVlLmltcGwoKSksIGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1
YkluZm9HUFIsIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOwogCi0gICAgICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICAg
ICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvKCk7CiAgICAgICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6
R2V0QnlJZDsKICAgICAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5k
ZXg7Ci0gICAgICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFk
ZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8s
IHN0dWJJbmZvKTsKICAgICAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXgg
PSBzdHViSW5mb0luZGV4OwogICAgICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1Yklu
Zm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvci5jcHAKaW5kZXggYmRhNTFhNDhkODA3NGQ0ZjZkMmJjM2ExOWEwYzc4NTlmZjE3
MDNhNi4uMTUxOTVmZDMwZmJiZTI3NjczNjk0YTdmMDRjMjQ0ZWMyYTU3OTc1YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5j
cHAKQEAgLTUwLDE1ICs1MCwxNyBAQCBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IoCiAgICAgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMpCiAg
ICAgOiBtX2ppdFR5cGUoaml0VHlwZSkKIHsKLSAgICBtX3N0dWJJbmZvID0gY29kZUJsb2NrID8g
Y29kZUJsb2NrLT5hZGRTdHViSW5mbyhhY2Nlc3NUeXBlLCBjb2RlT3JpZ2luKSA6IGdhcmJhZ2VT
dHViSW5mbygpOwotICAgIG1fc3R1YkluZm8tPmNhbGxTaXRlSW5kZXggPSBjYWxsU2l0ZTsKLQot
ICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMgPSB1c2VkUmVnaXN0ZXJzOworICAgIGlmIChK
SVRDb2RlOjppc09wdGltaXppbmdKSVQobV9qaXRUeXBlKSkgeworICAgICAgICBtX3N0dWJJbmZv
ID0gY29kZUJsb2NrID8gY29kZUJsb2NrLT5hZGRPcHRpbWl6aW5nU3R1YkluZm8oYWNjZXNzVHlw
ZSwgY29kZU9yaWdpbikgOiBnYXJiYWdlU3R1YkluZm8oKTsKKyAgICAgICAgbV9zdHViSW5mby0+
Y2FsbFNpdGVJbmRleCA9IGNhbGxTaXRlOworICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0
ZXJzID0gdXNlZFJlZ2lzdGVyczsKKyAgICB9CiB9CiAKIHZvaWQgSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3I6OmZpbmFsaXplKAogICAgIExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBz
bG93UGF0aCwgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0KQog
eworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0dWJJbmZvLT5zdGFydCA9IHN0YXJ0
OwogICAgIG1fc3R1YkluZm8tPmRvbmVMb2NhdGlvbiA9IGZhc3RQYXRoLmxvY2F0aW9uT2Y8SlNJ
bnRlcm5hbFB0clRhZz4obV9kb25lKTsKIApAQCAtODMsMTkgKzg1LDIyIEBAIEpJVEJ5SWRHZW5l
cmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgLCBtX2Jhc2UoYmFzZSkKICAgICAsIG1fdmFs
dWUodmFsdWUpCiB7Ci0gICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigp
OwotICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgIG1f
c3R1YkluZm8tPnJlZ3MudGhpc0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgbV9zdHViSW5mby0+
bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BSOworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAg
ICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9z
dHViSW5mby0+dmFsdWVHUFIgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1Yklu
Zm8tPnJlZ3MudGhpc0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIG1fc3R1YkluZm8tPm1f
c3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIG1f
c3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnZh
bHVlVGFnR1BSID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+di50aGlzVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2Uu
dGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gdmFsdWUudGFnR1BS
KCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYudGhpc1RhZ0dQUiA9IEludmFsaWRHUFJSZWc7CiAj
ZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgSklUQnlJZEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1
ZmZlciYgZmFzdFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0
dWJJbmZvKTsKICAgICBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6ZmluYWxpemUoZmFzdFBhdGgs
IHNsb3dQYXRoLCBmYXN0UGF0aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihtX3N0
YXJ0KSk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQogICAgICAgICBt
X3N0dWJJbmZvLT5tX2NvZGVQdHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb247
CkBAIC0xMjYsNiArMTMxLDcgQEAgSklUR2V0QnlJZEdlbmVyYXRvcjo6SklUR2V0QnlJZEdlbmVy
YXRvcigKIAogdm9pZCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3Jv
QXNzZW1ibGVyJiBqaXQpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIGdlbmVyYXRl
RmFzdENvbW1vbihqaXQsIG1faXNMZW5ndGhBY2Nlc3MgPyBJbmxpbmVBY2Nlc3M6OnNpemVGb3JM
ZW5ndGhBY2Nlc3MoKSA6IElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNjZXNzKCkpOwog
fQogCkBAIC0xNjcsMTUgKzE3MywxNyBAQCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcigKICAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJs
b2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6R2V0QnlJZFdp
dGhUaGlzLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgc3R1YkluZm9HUFIpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQodGhpc1JlZ3MucGF5bG9hZEdQUigpICE9IHRoaXNSZWdzLnRhZ0dQUigp
KTsKLQotICAgIG1fc3R1YkluZm8tPnJlZ3MudGhpc0dQUiA9IHRoaXNSZWdzLnBheWxvYWRHUFIo
KTsKKyAgICBpZiAobV9zdHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnRoaXNH
UFIgPSB0aGlzUmVncy5wYXlsb2FkR1BSKCk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBt
X3N0dWJJbmZvLT52LnRoaXNUYWdHUFIgPSB0aGlzUmVncy50YWdHUFIoKTsKKyAgICAgICAgbV9z
dHViSW5mby0+di50aGlzVGFnR1BSID0gdGhpc1JlZ3MudGFnR1BSKCk7CiAjZW5kaWYKKyAgICB9
CiB9CiAKIHZvaWQgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KE1hY3JvQXNzZW1ibGVyJiBqaXQpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIGdl
bmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNjZXNz
KCkpOwogfQogCkBAIC0yMDMsNyArMjExLDggQEAgSklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0
QnlJZEdlbmVyYXRvcigKICAgICAgICAgLCBtX2VjbWFNb2RlKGVjbWFNb2RlKQogICAgICAgICAs
IG1fcHV0S2luZChwdXRLaW5kKQogewotICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xl
YXIoc2NyYXRjaCk7CisgICAgaWYgKG1fc3R1YkluZm8pCisgICAgICAgIG1fc3R1YkluZm8tPnVz
ZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaCk7CiB9CiAKIHZvaWQgSklUUHV0QnlJZEdlbmVyYXRv
cjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHVi
SW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtMjM0LDYgKzI0Myw3IEBAIHZvaWQgSklUUHV0
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1
bnNpZ25lZCBzdHViCiAKIHZvaWQgSklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBn
ZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxh
Y2UoKSk7CiB9CiAKQEAgLTI2MywyMyArMjczLDI4IEBAIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMg
SklUUHV0QnlJZEdlbmVyYXRvcjo6c2xvd1BhdGhGdW5jdGlvbigpCiBKSVREZWxCeVZhbEdlbmVy
YXRvcjo6SklURGVsQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5cGUg
aml0VHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5k
ZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNlLCBK
U1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9H
UFIsIEdQUlJlZyBzY3JhdGNoKQogICAgIDogQmFzZShjb2RlQmxvY2ssIGppdFR5cGUsIGNvZGVP
cmlnaW4sIGNhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGU6OkRlbGV0ZUJ5VmFsLCB1c2VkUmVnaXN0
ZXJzKQogewotICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IGZhbHNlOwog
ICAgIEFTU0VSVChiYXNlLnBheWxvYWRHUFIoKSAhPSByZXN1bHQucGF5bG9hZEdQUigpKTsKLSAg
ICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5m
by0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJ
bmZvLT52YWx1ZUdQUiA9IHJlc3VsdC5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+bV9z
dHViSW5mb0dQUiA9IHN0dWJJbmZvR1BSOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgQVNT
RVJUKGJhc2UudGFnR1BSKCkgIT0gcmVzdWx0LnRhZ0dQUigpKTsKLSAgICBtX3N0dWJJbmZvLT5i
YXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9
IHJlc3VsdC50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJv
cGVydHkudGFnR1BSKCk7CiAjZW5kaWYKLSAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNs
ZWFyKHNjcmF0Y2gpOworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1YkluZm8t
Pmhhc0NvbnN0YW50SWRlbnRpZmllciA9IGZhbHNlOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNl
R1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVy
dHlHUFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVl
R1BSID0gcmVzdWx0LnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+bV9zdHViSW5m
b0dQUiA9IHN0dWJJbmZvR1BSOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1fc3R1
YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52
YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+di5wcm9w
ZXJ0eVRhZ0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOworI2VuZGlmCisgICAgICAgIG1fc3R1Yklu
Zm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaCk7CisgICAgfQogfQogCiB2b2lkIEpJVERl
bEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiB7
CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKICAg
ICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0
dWJJbmZvR1BSKTsKQEAgLTI5MSw2ICszMDYsNyBAQCB2b2lkIEpJVERlbEJ5VmFsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiAKIHZvaWQgSklURGVsQnlW
YWxHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBz
bG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgQmFzZTo6ZmluYWxpemUo
ZmFzdFBhdGgsIHNsb3dQYXRoLCBmYXN0UGF0aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRy
VGFnPihtX3N0YXJ0KSk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQog
ICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQdHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0
TG9jYXRpb247CkBAIC0yOTksMjMgKzMxNSwyOCBAQCB2b2lkIEpJVERlbEJ5VmFsR2VuZXJhdG9y
OjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiBK
SVREZWxCeUlkR2VuZXJhdG9yOjpKSVREZWxCeUlkR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJs
b2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRl
eCBjYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVh
YmxlSWRlbnRpZmllciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJS
ZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoKQogICAgIDogQmFzZShjb2RlQmxvY2ssIGpp
dFR5cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGU6OkRlbGV0ZUJ5SUQs
IHVzZWRSZWdpc3RlcnMpCiB7Ci0gICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVy
ID0gdHJ1ZTsKICAgICBBU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkgIT0gcmVzdWx0LnBheWxvYWRH
UFIoKSk7Ci0gICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwotICAg
IG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlHUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgIG1fc3R1
YkluZm8tPnZhbHVlR1BSID0gcmVzdWx0LnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5t
X3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBB
U1NFUlQoYmFzZS50YWdHUFIoKSAhPSByZXN1bHQudGFnR1BSKCkpOwotICAgIG1fc3R1YkluZm8t
PmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BS
ID0gcmVzdWx0LnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdHUFIgPSBJ
bnZhbGlkR1BSUmVnOwogI2VuZGlmCi0gICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycy5jbGVh
cihzY3JhdGNoKTsKKyAgICBpZiAobV9zdHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5o
YXNDb25zdGFudElkZW50aWZpZXIgPSB0cnVlOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BS
ID0gYmFzZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3Vs
dC5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHVi
SW5mb0dQUjsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3N0dWJJbmZvLT5iYXNl
VGFnR1BSID0gYmFzZS50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIg
PSByZXN1bHQudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdHUFIg
PSBJbnZhbGlkR1BSUmVnOworI2VuZGlmCisgICAgICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3Rl
cnMuY2xlYXIoc2NyYXRjaCk7CisgICAgfQogfQogCiB2b2lkIEpJVERlbEJ5SWRHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIHsKKyAgICBBU1NFUlQobV9z
dHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwogICAgIGlmIChKSVRDb2RlOjp1
c2VEYXRhSUMobV9qaXRUeXBlKSkgewogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIobV9zdHViSW5mbyksIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwpAQCAt
MzI3LDYgKzM0OCw3IEBAIHZvaWQgSklURGVsQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0
aChNYWNyb0Fzc2VtYmxlciYgaml0KQogCiB2b2lkIEpJVERlbEJ5SWRHZW5lcmF0b3I6OmZpbmFs
aXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKIHsKKyAgICBB
U1NFUlQobV9zdHViSW5mbyk7CiAgICAgQmFzZTo6ZmluYWxpemUoZmFzdFBhdGgsIHNsb3dQYXRo
LCBmYXN0UGF0aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihtX3N0YXJ0KSk7CiAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQogICAgICAgICBtX3N0dWJJbmZv
LT5tX2NvZGVQdHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb247CkBAIC0zMzUs
MjEgKzM1NywyMyBAQCB2b2lkIEpJVERlbEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZm
ZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKIEpJVEluQnlWYWxHZW5lcmF0b3I6
OkpJVEluQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5cGUgaml0VHlw
ZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgsIEFj
Y2Vzc1R5cGUgYWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEpT
VmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVlUmVncyByZXN1bHQs
IEdQUlJlZyBzdHViSW5mb0dQUikKICAgICA6IEJhc2UoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2Rl
T3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBhY2Nlc3NUeXBlLCB1c2VkUmVnaXN0ZXJzKQogewotICAg
IG1fc3R1YkluZm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IGZhbHNlOwotCi0gICAgbV9zdHVi
SW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnJlZ3Mu
cHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFs
dWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9H
UFIgPSBzdHViSW5mb0dQUjsKKyAgICBpZiAobV9zdHViSW5mbykgeworICAgICAgICBtX3N0dWJJ
bmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsKKyAgICAgICAgbV9zdHViSW5mby0+
YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnBy
b3BlcnR5R1BSID0gcHJvcGVydHkucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52
YWx1ZUdQUiA9IHJlc3VsdC5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPm1fc3R1
YkluZm9HUFIgPSBzdHViSW5mb0dQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIG1fc3R1
YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnZhbHVl
VGFnR1BSID0gcmVzdWx0LnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdH
UFIgPSBwcm9wZXJ0eS50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9
IGJhc2UudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gcmVzdWx0
LnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVy
dHkudGFnR1BSKCk7CiAjZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgSklUSW5CeVZhbEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVCht
X3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CiAgICAgaWYgKEpJVENvZGU6
OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CkBA
IC0zNjMsNiArMzg3LDcgQEAgdm9pZCBKSVRJbkJ5VmFsR2VuZXJhdG9yOjpmaW5hbGl6ZSgKICAg
ICBMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiB7CiAgICAgQVNT
RVJUKG1fc3RhcnQuaXNTZXQoKSk7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIEJhc2U6
OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBhdGgubG9jYXRpb25PZjxKSVRTdHVi
Um91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9q
aXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9zdHViSW5mby0+c2xv
d1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMzgwLDYgKzQwNSw3IEBAIEpJVEluQnlJZEdlbmVyYXRv
cjo6SklUSW5CeUlkR2VuZXJhdG9yKAogCiB2b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZv
KTsKICAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9w
ZXJ0eUFjY2VzcygpKTsKIH0KIApAQCAtNDE1LDI5ICs0NDEsMzEgQEAgSklUSW5zdGFuY2VPZkdl
bmVyYXRvcjo6SklUSW5zdGFuY2VPZkdlbmVyYXRvcigKICAgICBHUFJSZWcgc2NyYXRjaDEsIEdQ
UlJlZyBzY3JhdGNoMiwgYm9vbCBwcm90b3R5cGVJc0tub3duT2JqZWN0KQogICAgIDogSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0
ZUluZGV4LCBBY2Nlc3NUeXBlOjpJbnN0YW5jZU9mLCB1c2VkUmVnaXN0ZXJzKQogewotICAgIG1f
c3R1YkluZm8tPmJhc2VHUFIgPSB2YWx1ZTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJl
c3VsdDsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3RvdHlwZUdQUiA9IHByb3RvdHlwZTsKLSAg
ICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisgICAgaWYgKG1fc3R1
YkluZm8pIHsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IHZhbHVlOworICAgICAgICBt
X3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3VsdDsKKyAgICAgICAgbV9zdHViSW5mby0+cmVncy5w
cm90b3R5cGVHUFIgPSBwcm90b3R5cGU7CisgICAgICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9H
UFIgPSBzdHViSW5mb0dQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIG1fc3R1YkluZm8t
PmJhc2VUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT52LnRoaXNUYWdHUFIgPSBJbnZhbGlk
R1BSUmVnOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gSW52YWxpZEdQUlJlZzsK
KyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICBtX3N0dWJJbmZvLT52LnRoaXNUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCiAKLSAg
ICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHJlc3VsdCk7Ci0gICAgaWYgKHNjcmF0
Y2gxICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMu
Y2xlYXIoc2NyYXRjaDEpOwotICAgIGlmIChzY3JhdGNoMiAhPSBJbnZhbGlkR1BSUmVnKQotICAg
ICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gyKTsKLQotICAgIG1f
c3R1YkluZm8tPnByb3RvdHlwZUlzS25vd25PYmplY3QgPSBwcm90b3R5cGVJc0tub3duT2JqZWN0
OworICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHJlc3VsdCk7CisgICAg
ICAgIGlmIChzY3JhdGNoMSAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgbV9zdHViSW5m
by0+dXNlZFJlZ2lzdGVycy5jbGVhcihzY3JhdGNoMSk7CisgICAgICAgIGlmIChzY3JhdGNoMiAh
PSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycy5j
bGVhcihzY3JhdGNoMik7CiAKLSAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIg
PSBmYWxzZTsKKyAgICAgICAgbV9zdHViSW5mby0+cHJvdG90eXBlSXNLbm93bk9iamVjdCA9IHBy
b3RvdHlwZUlzS25vd25PYmplY3Q7CisgICAgICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0YW50SWRl
bnRpZmllciA9IGZhbHNlOworICAgIH0KIH0KIAogdm9pZCBKSVRJbnN0YW5jZU9mR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiB7CisgICAgQVNTRVJUKG1f
c3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKICAgICBpZiAoSklUQ29kZTo6
dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKQEAg
LTQ0OSw2ICs0NzcsNyBAQCB2b2lkIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIAogdm9pZCBKSVRJbnN0YW5jZU9mR2VuZXJhdG9y
OjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiB7
CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIEJhc2U6OmZpbmFsaXplKGZhc3RQYXRoLCBz
bG93UGF0aCwgZmFzdFBhdGgubG9jYXRpb25PZjxKSVRTdHViUm91dGluZVB0clRhZz4obV9zdGFy
dCkpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkKICAgICAgICAgbV9z
dHViSW5mby0+bV9jb2RlUHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwpA
QCAtNDU5LDIxICs0ODgsMjMgQEAgSklUR2V0QnlWYWxHZW5lcmF0b3I6OkpJVEdldEJ5VmFsR2Vu
ZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUKICAgICAsIG1fYmFz
ZShiYXNlKQogICAgICwgbV9yZXN1bHQocmVzdWx0KQogewotICAgIG1fc3R1YkluZm8tPmhhc0Nv
bnN0YW50SWRlbnRpZmllciA9IGZhbHNlOwotCi0gICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJh
c2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlHUFIgPSBwcm9w
ZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5
bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsK
KyAgICBpZiAobV9zdHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElk
ZW50aWZpZXIgPSBmYWxzZTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5
bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVy
dHkucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3VsdC5w
YXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5m
b0dQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIG1fc3R1YkluZm8tPmJhc2VUYWdHUFIg
PSBiYXNlLnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gcmVzdWx0LnRh
Z0dQUigpOwotICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdHUFIgPSBwcm9wZXJ0eS50YWdH
UFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7Cisg
ICAgICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gcmVzdWx0LnRhZ0dQUigpOworICAgICAg
ICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7CiAjZW5k
aWYKKyAgICB9CiB9CiAKIHZvaWQgSklUR2V0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAg
bV9zdGFydCA9IGppdC5sYWJlbCgpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRU
eXBlKSkgewogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9z
dHViSW5mbyksIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwpAQCAtNDg1LDYgKzUxNiw3IEBA
IHZvaWQgSklUR2V0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJs
ZXImIGppdCkKIAogdm9pZCBKSVRHZXRCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZl
ciYgZmFzdFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0dWJJ
bmZvKTsKICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1BhdGgsIGZhc3RQYXRoLmxv
Y2F0aW9uT2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsKICAgICBpZiAoSklUQ29k
ZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0ciA9
IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTQ5NSwyMiArNTI3LDI0IEBA
IEpJVFB1dEJ5VmFsR2VuZXJhdG9yOjpKSVRQdXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgSklUVHlwZSBqaXRUeXBlCiAgICAgLCBtX2Jhc2UoYmFzZSkKICAgICAsIG1fdmFs
dWUodmFsdWUpCiB7Ci0gICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFs
c2U7Ci0KLSAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7Ci0gICAg
bV9zdHViSW5mby0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxvYWRHUFIoKTsKLSAg
ICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHZhbHVlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJ
bmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7Ci0gICAgbV9zdHViSW5mby0+bV9hcnJh
eVByb2ZpbGVHUFIgPSBhcnJheVByb2ZpbGVHUFI7CisgICAgaWYgKG1fc3R1YkluZm8pIHsKKyAg
ICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7CisgICAgICAg
IG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9zdHVi
SW5mby0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxvYWRHUFIoKTsKKyAgICAgICAg
bV9zdHViSW5mby0+dmFsdWVHUFIgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1
YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsKKyAgICAgICAgbV9zdHViSW5mby0+
bV9hcnJheVByb2ZpbGVHUFIgPSBhcnJheVByb2ZpbGVHUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwotICAgIG1fc3R1YkluZm8tPnYu
cHJvcGVydHlUYWdHUFIgPSBwcm9wZXJ0eS50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+
YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlVGFn
R1BSID0gdmFsdWUudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdH
UFIgPSBwcm9wZXJ0eS50YWdHUFIoKTsKICNlbmRpZgorICAgIH0KIH0KIAogdm9pZCBKSVRQdXRC
eVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogewor
ICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CiAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CiAgICAgICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHVi
SW5mb0dQUik7CkBAIC01MjIsNiArNTU2LDcgQEAgdm9pZCBKSVRQdXRCeVZhbEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogCiB2b2lkIEpJVFB1dEJ5VmFs
R2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xv
d1BhdGgpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIEJhc2U6OmZpbmFsaXplKGZh
c3RQYXRoLCBzbG93UGF0aCwgZmFzdFBhdGgubG9jYXRpb25PZjxKSVRTdHViUm91dGluZVB0clRh
Zz4obV9zdGFydCkpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkKICAg
ICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExv
Y2F0aW9uOwpAQCAtNTMxLDIxICs1NjYsMjMgQEAgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJh
dG9yOjpKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmwKICAg
ICA6IEJhc2UoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBh
Y2Nlc3NUeXBlLCB1c2VkUmVnaXN0ZXJzKQogewogICAgIEFTU0VSVChhY2Nlc3NUeXBlID09IEFj
Y2Vzc1R5cGU6OkNoZWNrUHJpdmF0ZUJyYW5kIHx8IGFjY2Vzc1R5cGUgPT0gQWNjZXNzVHlwZTo6
U2V0UHJpdmF0ZUJyYW5kKTsKLSAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIg
PSBmYWxzZTsKLQotICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsK
LSAgICBtX3N0dWJJbmZvLT5yZWdzLmJyYW5kR1BSID0gYnJhbmQucGF5bG9hZEdQUigpOwotICAg
IG1fc3R1YkluZm8tPnZhbHVlR1BSID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT5t
X3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisgICAgaWYgKG1fc3R1YkluZm8pIHsKKyAgICAg
ICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7CisgICAgICAgIG1f
c3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9zdHViSW5m
by0+cmVncy5icmFuZEdQUiA9IGJyYW5kLnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9zdHViSW5m
by0+dmFsdWVHUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJ
bmZvR1BSID0gc3R1YkluZm9HUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJ
bmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52LmJyYW5k
VGFnR1BSID0gYnJhbmQudGFnR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSBJ
bnZhbGlkR1BSUmVnOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdH
UFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+di5icmFuZFRhZ0dQUiA9IGJyYW5kLnRhZ0dQUigp
OworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7CiAjZW5k
aWYKKyAgICB9CiB9CiAKIHZvaWQgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiB7CisgICAgQVNTRVJUKG1fc3R1Yklu
Zm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0
YUlDKG1faml0VHlwZSkpIHsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKQEAgLTU1Nyw2
ICs1OTQsNyBAQCB2b2lkIEpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogCiB2b2lkIEpJVFByaXZhdGVCcmFuZEFjY2Vz
c0dlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZlciYgZmFzdFBhdGgsIExpbmtCdWZmZXImIHNs
b3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBCYXNlOjpmaW5hbGl6ZShm
YXN0UGF0aCwgc2xvd1BhdGgsIGZhc3RQYXRoLmxvY2F0aW9uT2Y8SklUU3R1YlJvdXRpbmVQdHJU
YWc+KG1fc3RhcnQpKTsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpCiAg
ICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0ciA9IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRM
b2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IuaAppbmRleCBlYmRlNDI0Y2E2ZDRhZDY3ZWJmOTQ5NjE3N2IwZWZlYzdmNjhk
ZjJjLi43MTZkMDI2YzljODg4MDY2ZTdhNjcyNThiNmZhZWJhZGZjMWQ3OGI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCkBA
IC0yNjMsNyArMjYzLDcgQEAgY2xhc3MgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogCiBwcm90
ZWN0ZWQ6CiAgICAgSklUVHlwZSBtX2ppdFR5cGU7Ci0gICAgU3RydWN0dXJlU3R1YkluZm8qIG1f
c3R1YkluZm87CisgICAgU3RydWN0dXJlU3R1YkluZm8qIG1fc3R1YkluZm8geyBudWxscHRyIH07
CiAKIHB1YmxpYzoKICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9zdGFydDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDhkNTVjMWM2YmVjMTU1ZTJmYjky
OWQwNmU3YzA4MTcwYzNjMDU1ZGUuLjA5N2RkOTcxNWVlY2I0MmY0YjIyNjljNGYzODgzOTExZGQ1
MjlmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTc3
LDEwICsxNzcsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIHN0dWJJbmZvR1BSLAogICAgICAgICBC
YXNlbGluZUluc3RhbmNlb2ZSZWdpc3RlcnM6OnNjcmF0Y2gxLCBCYXNlbGluZUluc3RhbmNlb2ZS
ZWdpc3RlcnM6OnNjcmF0Y2gyKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8s
IHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBz
dHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6Okluc3RhbmNlT2Y7CiAgICAgc3R1Yklu
Zm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29s
OjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQ
b29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlu
a2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxp
bmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCBiNGU4MGU1ZjZkNWE0OTgzNzIxMGE3YmRkNWM2Njgx
OTU0OGUzM2Y1Li4wNTgxOTNiZjkyMzg0OGNkNTY0YTE0ZWI3ZmM4ZDBmNTJlNGJiNjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xNzUs
MTAgKzE3NSw5IEBAIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2YoY29uc3QgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgc3R1YkluZm9HUFIsCiAgICAgICAgIHNj
cmF0Y2gxR1BSLCBzY3JhdGNoMkdQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJ
bmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAg
ICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpJbnN0YW5jZU9mOwogICAgIHN0
dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50
UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0
YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91
bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1f
dW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDM3YzkyYTI4YzNmN2ZiNWFkMTQ3Mzc0
YmUzMjFlM2QwZWE5MTBjNjAuLjZhMzkxZTNkNTkzZTY3ZThmYjc3YTE5YzMyZDM4ZTc4ZmQ0ZjA4
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCkBAIC03NSwxMyArNzUsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICAgICAgbnVsbHB0ciwg
SklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNp
dGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0ZXJT
ZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICAgICAgYmFzZUpTUiwgcHJv
cGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIpOwogCi0gICAgICAgIGlmIChpc09wZXJh
bmRDb25zdGFudEludChwcm9wZXJ0eSkpCi0gICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJv
cGVydHlJc0ludDMyID0gdHJ1ZTsKLQotICAgICAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgICAgIGF1dG8gWyBz
dHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygp
OwogICAgICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkdldEJ5VmFsOwog
ICAgICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICAg
ICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFu
dFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8p
OworICAgICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQorICAgICAgICAg
ICAgc3R1YkluZm8tPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CiAgICAgICAgIGdlbi5tX3VubGlu
a2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICAgICAgZ2VuLm1f
dW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC0xNDksNyArMTQ3LDYgQEAgdm9pZCBK
SVQ6OmdlbmVyYXRlR2V0QnlWYWxTbG93Q2FzZShjb25zdCBPcGNvZGVUeXBlJiBieXRlY29kZSwg
VmVjdG9yPFNsb3dDYXNlRW4KICAgICBsb2FkQ29uc3RhbnQoZ2VuLm1fdW5saW5rZWRTdHViSW5m
b0NvbnN0YW50SW5kZXgsIHN0dWJJbmZvR1BSKTsKICAgICBtYXRlcmlhbGl6ZVBvaW50ZXJJbnRv
TWV0YWRhdGEoYnl0ZWNvZGUsIE9wY29kZVR5cGU6Ok1ldGFkYXRhOjpvZmZzZXRPZkFycmF5UHJv
ZmlsZSgpLCBwcm9maWxlR1BSKTsKICAgICBlbWl0TmFrZWROZWFyQ2FsbCh2bS5nZXRDVElTdHVi
KHNsb3dfb3BfZ2V0X2J5X3ZhbF9wcmVwYXJlQ2FsbEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPE5v
UHRyVGFnPigpKTsKLQogICAgIGVtaXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoY2hlY2tF
eGNlcHRpb25HZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7CiAKICAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZXR1cm5WYWx1ZUdQUik7CkBAIC0yMjQsMTAg
KzIyMSw5IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFz
ZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZSwKICAgICAgICAgUmVnaXN0
ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLCBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwg
cmVzdWx0SlNSLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJ
bmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAg
ICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZTsKICAg
ICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25z
dGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRD
b25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2Vu
Lm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdl
bi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtMzQ3LDEwICszNDMsOSBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9zZXRfcHJpdmF0ZV9icmFuZChjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwg
Q29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRl
eCksIEFjY2Vzc1R5cGU6OlNldFByaXZhdGVCcmFuZCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLAogICAgICAgICBiYXNlSlNSLCBicmFuZEpTUiwgc3R1YkluZm9HUFIp
OwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2Vk
U3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0g
YWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBl
ID0gQWNjZXNzVHlwZTo6U2V0UHJpdmF0ZUJyYW5kOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUlu
ZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1
YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3Ry
dWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29u
c3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9
IHN0dWJJbmZvOwogCkBAIC00MzIsMTAgKzQyNyw5IEBAIHZvaWQgSklUOjplbWl0X29wX2NoZWNr
X3ByaXZhdGVfYnJhbmQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29k
ZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpDaGVj
a1ByaXZhdGVCcmFuZCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAog
ICAgICAgICBiYXNlSlNSLCBicmFuZEpTUiwgc3R1YkluZm9HUFIpOwogCi0gICAgVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1YkluZm9zLmFkZCgpOwor
ICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1
cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6Q2hl
Y2tQcml2YXRlQnJhbmQ7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2Rl
SW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRk
VG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywg
c3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1
YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAg
LTUxNywxNSArNTExLDEzIEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6
QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpQdXRCeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgdmFs
dWVKU1IsIHByb2ZpbGVHUFIsIHN0dWJJbmZvR1BSKTsKIAotICAgIGlmIChpc09wZXJhbmRDb25z
dGFudEludChwcm9wZXJ0eSkpCi0gICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50
MzIgPSB0cnVlOwotCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBt
X3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9J
bmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5h
Y2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6UHV0QnlWYWw7CiAgICAgc3R1YkluZm8tPnB1dEtpbmQg
PSBzdGQ6OmlzX3NhbWVfdjxPcCwgT3BQdXRCeVZhbERpcmVjdD4gPyBQdXRLaW5kOjpEaXJlY3Qg
OiBQdXRLaW5kOjpOb3REaXJlY3Q7CiAgICAgc3R1YkluZm8tPmVjbWFNb2RlID0gZWNtYU1vZGUo
Ynl0ZWNvZGUpOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4
OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29u
c3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJ
bmZvKTsKKyAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQorICAgICAgICBz
dHViSW5mby0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJ
bmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHVi
SW5mbyA9IHN0dWJJbmZvOwogCkBAIC02MDksMTIgKzYwMSw2IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9wdXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTCiAgICAgbW92ZShUcnVzdGVkSW1tMzIoYnl0ZWNvZGVPZmZzZXQpLCBieXRlY29kZU9m
ZnNldEdQUik7CiAgICAgbG9hZENvbnN0YW50KGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFu
dEluZGV4LCBzdHViSW5mb0dQUik7CiAgICAgZW1pdE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1
YihzbG93X29wX3B1dF9ieV92YWxfcHJlcGFyZUNhbGxHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxO
b1B0clRhZz4oKSk7Ci0gICAgQ2FsbCBjYWxsOwotICAgIGF1dG8gb3BlcmF0aW9uID0gaXNEaXJl
Y3QgPyAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0
T3B0aW1pemUgOiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbE5vblN0cmljdE9wdGltaXplKSA6IChl
Y21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9w
ZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpOwotICAgIGlmIChKSVRDb2RlOjp1c2VE
YXRhSUMoSklUVHlwZTo6QmFzZWxpbmVKSVQpKQotICAgICAgICBnZW4uc3R1YkluZm8oKS0+bV9z
bG93T3BlcmF0aW9uID0gb3BlcmF0aW9uOwotICAgIGVsc2UKLSAgICAgICAgY2FsbCA9IGFwcGVu
ZENhbGwob3BlcmF0aW9uKTsKICAgICBlbWl0TmFrZWROZWFyQ2FsbCh2bS5nZXRDVElTdHViKGNo
ZWNrRXhjZXB0aW9uR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwogI2VuZGlm
IC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQogCkBAIC02ODYsMTEgKzY3MiwxMCBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9wdXRfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwg
QWNjZXNzVHlwZTo6UHV0UHJpdmF0ZU5hbWUsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVS
ZWdpc3RlcnMoKSwKICAgICAgICAgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHZhbHVlSlNSLCBJbnZh
bGlkR1BSUmVnLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJ
bmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAg
ICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpQdXRQcml2YXRlTmFtZTsKICAg
ICBzdHViSW5mby0+cHJpdmF0ZUZpZWxkUHV0S2luZCA9IGJ5dGVjb2RlLm1fcHV0S2luZDsKICAg
ICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25z
dGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRD
b25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2Vu
Lm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdl
bi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtODY2LDEwICs4NTEsOSBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9kZWxfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZp
ZXJPd25lZEJ5Q29kZUJsb2NrKG1fdW5saW5rZWRDb2RlQmxvY2ssICppZGVudCksCiAgICAgICAg
IGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIpOwogCi0gICAgVW5s
aW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1YkluZm9zLmFk
ZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRT
dHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlw
ZTo6RGVsZXRlQnlJRDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJ
bmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRU
b0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBz
dHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHVi
SW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAt
OTMxLDcgKzkxNSw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9kZWxfYnlfaWQoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsCiAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLnJhd0JpdHMoKSksIHByb3BlcnR5
R1BSKTsKICAgICBtb3ZlKFRydXN0ZWRJbW0zMihieXRlY29kZS5tX2VjbWFNb2RlLnZhbHVlKCkp
LCBlY21hTW9kZUdQUik7CiAgICAgZW1pdE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1YihzbG93
X29wX2RlbF9ieV9pZF9wcmVwYXJlQ2FsbEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPE5vUHRyVGFn
PigpKTsKLQogICAgIGVtaXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoY2hlY2tFeGNlcHRp
b25HZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7CiAgICAgc3RhdGljX2Fzc2Vy
dChyZXR1cm5WYWx1ZUdQUiA9PSByZWdUMCk7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9U
SFVOS1MpCkBAIC0xMDAzLDEwICs5ODYsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kZWxfYnlfdmFs
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIs
IEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxT
aXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJl
Z2lzdGVycygpLAogICAgICAgICBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgcmVzdWx0SlNSLCBzdHVi
SW5mb0dQUiwgc2NyYXRjaEdQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZv
LCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAg
c3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpEZWxldGVCeVZhbDsKICAgICBzdHVi
SW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBv
b2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFu
dFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5s
aW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3Vu
bGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtMTA2OSw3ICsxMDUxLDYgQEAgdm9pZCBK
SVQ6OmVtaXRTbG93X29wX2RlbF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFMKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCBw
cm9wZXJ0eUdQUik7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIoYnl0ZWNvZGUubV9lY21hTW9kZS52
YWx1ZSgpKSwgZWNtYU1vZGVHUFIpOwogICAgIGVtaXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0
dWIoc2xvd19vcF9kZWxfYnlfdmFsX3ByZXBhcmVDYWxsR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8
Tm9QdHJUYWc+KCkpOwotCiAgICAgZW1pdE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1YihjaGVj
a0V4Y2VwdGlvbkdlbmVyYXRvcikucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAgICBzdGF0
aWNfYXNzZXJ0KHJldHVyblZhbHVlR1BSID09IHJlZ1QwKTsKICNlbmRpZiAvLyBFTkFCTEUoRVhU
UkFfQ1RJX1RIVU5LUykKQEAgLTExMzcsMTAgKzExMTgsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90
cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
ICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJ
bmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVh
dGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV91bmxpbmtlZENvZGVCbG9jaywgKmlk
ZW50KSwgYmFzZUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6VHJ5R2V0
QnlJZCk7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5s
aW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4
IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vz
c1R5cGUgPSBBY2Nlc3NUeXBlOjpUcnlHZXRCeUlkOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUlu
ZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1
YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3Ry
dWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29u
c3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9
IHN0dWJJbmZvOwogCkBAIC0xMjIxLDEwICsxMjAxLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
ICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2Rl
SW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHVi
VW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3Jl
YXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fdW5saW5rZWRDb2RlQmxvY2ssICpp
ZGVudCksIGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIEFjY2Vzc1R5cGU6OkdldEJ5
SWREaXJlY3QpOwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBt
X3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9J
bmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5h
Y2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6R2V0QnlJZERpcmVjdDsKICAgICBzdHViSW5mby0+Ynl0
ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0
YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5
cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHVi
SW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1
YkluZm8gPSBzdHViSW5mbzsKIApAQCAtMTMxOCwxMCArMTI5Nyw5IEBAIHZvaWQgSklUOjplbWl0
X29wX2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
ICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2Rl
SW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHVi
VW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3Jl
YXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fdW5saW5rZWRDb2RlQmxvY2ssICpp
ZGVudCksIGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIEFjY2Vzc1R5cGU6OkdldEJ5
SWQpOwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlu
a2VkU3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBd
ID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NU
eXBlID0gQWNjZXNzVHlwZTo6R2V0QnlJZDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9
IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZv
SW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVy
ZVN0dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50
SW5kZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHVi
SW5mbzsKIApAQCAtMTQwOCwxMCArMTM4Niw5IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9p
ZF93aXRoX3RoaXMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAg
ICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUlu
ZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVu
YXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0
ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRl
bnQpLCByZXN1bHRKU1IsIGJhc2VKU1IsIHRoaXNKU1IsIHN0dWJJbmZvR1BSKTsKIAotICAgIFVu
bGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5h
ZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5
cGU6OkdldEJ5SWRXaXRoVGhpczsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0
ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXgg
PSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJ
bmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXgg
PSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsK
IApAQCAtMTU5MSwxMiArMTU2OCwxMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgYmFzZUpTUiwgdmFs
dWVKU1IsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBlY21hTW9kZShieXRlY29kZSksCiAgICAg
ICAgIGRpcmVjdCA/IFB1dEtpbmQ6OkRpcmVjdCA6IFB1dEtpbmQ6Ok5vdERpcmVjdCk7CiAKLSAg
ICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5m
b3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxp
bmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nl
c3NUeXBlOjpQdXRCeUlkOwogICAgIHN0dWJJbmZvLT5wdXRLaW5kID0gZGlyZWN0ID8gUHV0S2lu
ZDo6RGlyZWN0IDogUHV0S2luZDo6Tm90RGlyZWN0OwogICAgIHN0dWJJbmZvLT5lY21hTW9kZSA9
IGVjbWFNb2RlKGJ5dGVjb2RlKTsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0
ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXgg
PSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJ
bmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXgg
PSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsK
IApAQCAtMTcxOCwxMCArMTY5NCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2luX2J5X2lkKGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5
cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAogICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93
bmVkQnlDb2RlQmxvY2sobV91bmxpbmtlZENvZGVCbG9jaywgKmlkZW50KSwgYmFzZUpTUiwgcmVz
dWx0SlNSLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZv
LCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAg
c3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpJbkJ5SWQ7CiAgICAgc3R1YkluZm8t
PmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpD
b25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29s
OjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2Vk
U3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtl
ZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE4MDcsMTAgKzE3ODIsOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9pbl9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRl
Y29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpJ
bkJ5VmFsLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAg
IGJhc2VKU1IsIHByb3BlcnR5SlNSLCByZXN1bHRKU1IsIHN0dWJJbmZvR1BSKTsKIAotICAgIFVu
bGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5h
ZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5
cGU6OkluQnlWYWw7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5k
ZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9D
b25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1
YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1Yklu
Zm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE4
NzAsNyArMTg0NCw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9pbl9ieV92YWwoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsCiAgICAgLy8gU28sIHRoZXJl
J3Mgbm8gcG9pbnQgaW4gY3JlYXRpbmcgYSBkdXBsaWNhdGUgdGh1bmsganVzdCB0byBnaXZlIGl0
IGEgZGlmZmVyZW50IG5hbWUuCiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8ZGVjbHR5
cGUob3BlcmF0aW9uSW5CeVZhbE9wdGltaXplKSwgZGVjbHR5cGUob3BlcmF0aW9uR2V0QnlWYWxP
cHRpbWl6ZSk+Ojp2YWx1ZSk7CiAgICAgZW1pdE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1Yihz
bG93X29wX2dldF9ieV92YWxfcHJlcGFyZUNhbGxHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0
clRhZz4oKSk7Ci0KICAgICBlbWl0TmFrZWROZWFyQ2FsbCh2bS5nZXRDVElTdHViKGNoZWNrRXhj
ZXB0aW9uR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwogCiAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJldHVyblZhbHVlR1BSKTsKQEAgLTE4OTQsMTAgKzE4Njcs
OSBAQCB2b2lkIEpJVDo6ZW1pdEhhc1ByaXZhdGUoVmlydHVhbFJlZ2lzdGVyIGRzdCwgVmlydHVh
bFJlZ2lzdGVyIGJhc2UsIFZpcnR1YWxSZWdpcwogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpC
YXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1f
Ynl0ZWNvZGVJbmRleCksIHR5cGUsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKICAgICAgICAgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9H
UFIpOwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlu
a2VkU3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBd
ID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NU
eXBlID0gdHlwZTsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRl
eDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0Nv
bnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHVi
SW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5m
b0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtMzIy
NywxMCArMzE5OSw5IEBAIHZvaWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBK
SVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0
ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OkdldEJ5VmFsLCBSZWdpc3RlclNl
dDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VH
UFIpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIHN0
dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0g
bV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZv
SW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+
YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkdldEJ5VmFsOwogICAgIHN0dWJJbmZvLT5ieXRlY29k
ZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQg
c3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6
U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZv
Q29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5m
byA9IHN0dWJJbmZvOwogCg==
</data>
<flag name="commit-queue"
          id="467465"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442884</attachid>
            <date>2021-10-29 17:13:32 -0700</date>
            <delta_ts>2021-10-29 17:51:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232513-20211029171331.patch</filename>
            <type>text/plain</type>
            <size>55921</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NTM2NGQ5NzJjYzg4OThmMGM4MWZjYTAxNmFmYTYxZGQyNGE3ZmU4Li5kYjdiNTM1Njg5MTEyYzE4
YWFmZTYwNmRjZmE5MzM2YTBlOWQzNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMjEtMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBCYXNlbGluZSBTdHJ1Y3R1cmVTdHViSW5mbyBt
YW5hZ2VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAxLiBXZSBzaG91bGQga2VlcCBHZW5lcmF0b3I6Om1fc3R1YkluZm8gbnVsbHB0ci4gQW5kIHdl
IGFkZCBzb21lIGFzc2VydGlvbnMgYWJvdXQgaXQgc2luY2UgaXQgc2hvdWxkIG5vdAorICAgICAg
ICAgICBiZSBhbGxvY2F0ZWQgYW5kIHVzZWQuCisgICAgICAgIDIuIFdlIGZvdW5kIHRoYXQgcHJv
cGVydHlJc0ludDMyIGZvciBvcF9nZXRfYnlfdmFsIGFuZCBvcF9wdXRfYnlfdmFsIGlzIG5vdCBh
cHByb3ByaWF0ZWx5IGNvbmZpZ3VyZWQgZm9yCisgICAgICAgICAgIFVubGlua2VkU3RydWN0dXJl
U3R1YkluZm8gKGl0IHdhcyBhY2NpZGVudGFsbHkgc2V0IGZvciB0aGUgYWJvdmUgd2FzdGVkIFN0
cnVjdHVyZVN0dWJJbmZvKS4gVGhpcyBwYXRjaAorICAgICAgICAgICBhdHRhY2hlcyB0aGF0IGlu
Zm9ybWF0aW9uLgorICAgICAgICAzLiBXZSBrZWVwIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8g
aW4gYSBGaXhlZFZlY3RvciBpbiBCYXNlbGluZUpJVENvZGUuIFdoaWxlIHdlIG5lZWQgdG8ga2Vl
cCBwb2ludGVyCisgICAgICAgICAgIGlkZW50aXR5IHdoaWxlIGNvbXBpbGluZyBCYXNlbGluZSBK
SVQsIGFmdGVyIHRoYXQsIHdlIG5vIGxvbmdlciBuZWVkIHRvIGtlZXAgdGhhdCBzaW5jZSB0aGVz
ZSBwb2ludGVycworICAgICAgICAgICBhcmUgbm90IGVtYmVkZGVkIGludG8gSklUIGNvZGUuIFRo
aXMgcGF0Y2ggYWxsb2NhdGVzIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gdmlhIFNlZ21lbnRl
ZFZlY3RvciBkdXJpbmcKKyAgICAgICAgICAgY29tcGlsYXRpb24gdG8ga2VlcCBwb2ludGVyIGlk
ZW50aXR5LCBidXQgd2hlbiBmaW5hbGl6aW5nLCB3ZSBhbGxvY2F0ZSBGaXhlZFZlY3RvciBhbmQg
Y29weSB0aGUgYWJvdmUgY29udGVudAorICAgICAgICAgICB0byB0aGF0IHRvIGtlZXAgbWVtb3J5
IGFzIHNtYWxsIGFzIHBvc3NpYmxlLiBXZSBzaG91bGQgZG8gc2ltaWxhciB0aGluZyB0byBVbmxp
bmtlZENhbGxMaW5rSW5mbywgU3RydWN0dXJlU3R1YkluZm8gZXRjLgorICAgICAgICAgICBmb3Ig
YmFzZWxpbmUsIGJ1dCB0aGlzIHNob3VsZCBiZSBkb25lIGluIGEgc2VwYXJhdGUgcGF0Y2guCisK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjphZGRPcHRpbWl6aW5nU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFk
ZFN0dWJJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAg
ICAgICAgKiBieXRlY29kZS9QdXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdGlhbGl6
ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGppdC9CYXNlbGluZUpJVENvZGUuaDoKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjphZGRVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpsaW5rKToKKyAgICAgICAgKiBqaXQvSklU
Lmg6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfaXRlcmF0b3Jfb3Blbik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9u
ZXh0KToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5lQ2FjaGVHZW5lcmF0b3Ip
OgorICAgICAgICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAg
ICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUQnlJZEdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRHZXRC
eUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJ
ZFdpdGhUaGlzR2VuZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgor
ICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6Cisg
ICAgICAgIChKU0M6OkpJVERlbEJ5VmFsR2VuZXJhdG9yOjpKSVREZWxCeVZhbEdlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OkpJVERlbEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToK
KyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAg
KEpTQzo6SklURGVsQnlJZEdlbmVyYXRvcjo6SklURGVsQnlJZEdlbmVyYXRvcik6CisgICAgICAg
IChKU0M6OkpJVERlbEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAo
SlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJVElu
QnlWYWxHZW5lcmF0b3I6OkpJVEluQnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRJ
bkJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5C
eVZhbEdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRJbkJ5SWRHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJh
dG9yOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUSW5zdGFuY2VP
ZkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVEluc3RhbmNl
T2ZHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0
b3I6OkpJVEdldEJ5VmFsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeVZhbEdlbmVy
YXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6SklU
UHV0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5VmFsR2VuZXJhdG9yOjpm
aW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6
SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUUHJpdmF0
ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6
SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6
OmdhcmJhZ2VTdHViSW5mbyk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmg6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAg
KiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVHZXRCeVZhbFNsb3dDYXNl
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc2V0X3ByaXZhdGVfYnJhbmQpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfY2hlY2tfcHJpdmF0ZV9icmFuZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9wcml2YXRlX25hbWUpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGVsX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0U2xvd19vcF9kZWxfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGVsX2J5
X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZGVsX2J5X3ZhbCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZF93aXRoX3Ro
aXMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2luX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2lu
X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5fYnlfdmFsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0SGFzUHJpdmF0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9lbnVtZXJhdG9yX2dldF9ieV92YWwpOgorCiAyMDIxLTEwLTI4ICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGNhbGwgdHlwZSgpIG9uIFN0cnVj
dHVyZSwgaW5zdGVhZCBjYWxsIHR5cGUoKSBvbiBpdHMgdHlwZUluZm8oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4Mzc2ZTA5
N2EwYTUyODI5MzA2MjZjMDFiZjAwOTZmMzQxY2UwNTVlLi41MTY5MDk1MDAwZmM0M2ZkNDY4YzQ1
YzA5Y2IwMmFmMjRlNWZkODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTI5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQ2xlYW4gdXAg
QmFzZWxpbmUgU3RydWN0dXJlU3R1YkluZm8gbWFuYWdlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTEzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvU2VnbWVudGVkVmVjdG9yLmg6CisK
IDIwMjEtMTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENy
ZWF0ZSBjb25zdGFudHMgZm9yIGFsbCBzcGVjaWFsIGZyYW1lIG5hbWVzIHVzZWQgaW4gYW5jaG9y
IHRhcmdldCBhdHRyaWJ1dGUgdmFsdWVzIGFuZCBlbHNld2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNDQ0YTEwNTY3MTcyY2E5OTlmNTUz
MDY1MGIzYzk3OGYwM2JmZDc4Mi4uMTkwNTk3MGNhZWM4NmNkYzgyNTQ4OGRhNWQ0OGI0MGU1Yjhl
MGQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
QEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNl
bGluZUNvZGUoUmVmPEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgSklUQ29uc3RhbnRQb29sOjpU
eXBlOjpTdHJ1Y3R1cmVTdHViSW5mbzogewotICAgICAgICAgICAgICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8gPSAqc3RhdGljX2Nhc3Q8VW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbyo+KGVudHJ5LnBvaW50ZXIoKSk7CisgICAgICAgICAgICAgICAgVW5saW5r
ZWRTdHJ1Y3R1cmVTdHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyA9IGppdENvZGUtPm1fdW5saW5r
ZWRTdHViSW5mb3NbYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW50cnkucG9pbnRlcigpKV07CiAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gaml0RGF0YS5tX3N0
dWJJbmZvcy5hZGQodW5saW5rZWRTdHViSW5mby5hY2Nlc3NUeXBlLCBDb2RlT3JpZ2luKHVubGlu
a2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCkpOwogICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5p
bml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8odGhpcywgdW5saW5rZWRTdHVi
SW5mbyk7CiAgICAgICAgICAgICAgICAgaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbFtpXSA9IHN0
dWJJbmZvOwpAQCAtMTcwNyw3ICsxNzA3LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmdldElDU3RhdHVz
TWFwKElDU3RhdHVzTWFwJiByZXN1bHQpCiB9CiAKICNpZiBFTkFCTEUoSklUKQotU3RydWN0dXJl
U3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4pCitTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRP
cHRpbWl6aW5nU3R1YkluZm8oQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiB7CiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgIHJl
dHVybiBlbnN1cmVKSVREYXRhKGxvY2tlcikubV9zdHViSW5mb3MuYWRkKGFjY2Vzc1R5cGUsIGNv
ZGVPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmlu
ZGV4IGEwZWI4OTUxNDdjZmY3ZWVmYTA3MzJjODRjZGRlZWZkODZhOTcwMTQuLjVhOTc1MjU4OWI0
NmIzYzljOTljNDc0MDRhYTE4ZjQyZDk0MWU1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTI4NCw3ICsyODQsNyBAQCBjbGFzcyBDb2RlQmxvY2sg
OiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZKSVREYXRh
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvZGVCbG9jaywgbV9qaXREYXRhKTsgfQogCi0g
ICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKEFjY2Vzc1R5cGUsIENvZGVPcmlnaW4p
OworICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRPcHRpbWl6aW5nU3R1YkluZm8oQWNjZXNzVHlw
ZSwgQ29kZU9yaWdpbik7CiAKICAgICAvLyBPKG4pIG9wZXJhdGlvbi4gVXNlIGdldElDU3RhdHVz
TWFwKCkgdW5sZXNzIHlvdSByZWFsbHkgb25seSBpbnRlbmQgdG8gZ2V0IG9uZSBzdHViIGluZm8u
CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRLaW5kLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0S2luZC5oCmluZGV4IGQ2ZTM1YmM0ZTg4ZjAwNzVh
MzMzNjliZmYxYzI3YTdjNjBmNjM2YTQuLjI2MGQwNzAwNmE3NDQzZjliMmJlNTRkMzdjNzk3YmMx
MDFiMWRmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRL
aW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEtpbmQuaApAQCAt
MjcsNiArMjcsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotZW51bSBjbGFzcyBQdXRLaW5kIHsg
RGlyZWN0LCBOb3REaXJlY3QsIERpcmVjdFByaXZhdGVGaWVsZERlZmluZSwgRGlyZWN0UHJpdmF0
ZUZpZWxkU2V0IH07CitlbnVtIGNsYXNzIFB1dEtpbmQgOiB1aW50OF90IHsgRGlyZWN0LCBOb3RE
aXJlY3QsIERpcmVjdFByaXZhdGVGaWVsZERlZmluZSwgRGlyZWN0UHJpdmF0ZUZpZWxkU2V0IH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKaW5kZXggZmQzNGJlY2NmZjJiMGU4YjY0NmRj
YzcwZTRjMmMzODhkZTU0NWNkYi4uYjFiZGIxMmM4MmEwZWYzZTBlZWIxZjBlNTg5MjZkZjAyMDA1
NmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwCkBAIC00NDEsNiArNDQxLDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5m
bzo6aW5pdGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKENvZGVCbG9jayosIFVu
bGkKICAgICBjYWxsU2l0ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KHVubGlu
a2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwogICAgIGNvZGVPcmlnaW4gPSBD
b2RlT3JpZ2luKHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAgbV9jb2RlUHRy
ID0gc2xvd1BhdGhTdGFydExvY2F0aW9uOworICAgIHByb3BlcnR5SXNJbnQzMiA9IHVubGlua2Vk
U3R1YkluZm8ucHJvcGVydHlJc0ludDMyOwogCiAgICAgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVy
U2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKTsKICAgICBpZiAoYWNjZXNzVHlwZSA9PSBB
Y2Nlc3NUeXBlOjpHZXRCeUlkICYmIHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5jaGVj
a3BvaW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKaW5kZXggMzM2ODViYzEzNzliZTI1Y2QyYThhMWM1ZmU5MDdkMjg5YTMz
MzQxMC4uOTk2ZjU5YWI4NTU5ZjhmZGQ1ZTlmNmY2MDgzNmNlMzEwMzdlYzA1NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAg
LTQ2NSw2ICs0NjUsNyBAQCBzdHJ1Y3QgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAg
UHV0S2luZCBwdXRLaW5kOwogICAgIFByaXZhdGVGaWVsZFB1dEtpbmQgcHJpdmF0ZUZpZWxkUHV0
S2luZCB7IFByaXZhdGVGaWVsZFB1dEtpbmQ6Om5vbmUoKSB9OwogICAgIEVDTUFNb2RlIGVjbWFN
b2RlIHsgRUNNQU1vZGU6OnNsb3BweSgpIH07CisgICAgYm9vbCBwcm9wZXJ0eUlzSW50MzIgeyBm
YWxzZSB9OwogICAgIEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleDsKICAgICBDb2RlTG9jYXRp
b25MYWJlbDxKSVRTdHViUm91dGluZVB0clRhZz4gc3RhcnQ7IC8vIFRoaXMgaXMgZWl0aGVyIHRo
ZSBzdGFydCBvZiB0aGUgaW5saW5lIElDIGZvciAqYnlJZCBjYWNoZXMuIG9yIHRoZSBsb2NhdGlv
biBvZiBwYXRjaGFibGUganVtcCBmb3IgJ2luc3RhbmNlb2YnIGNhY2hlcy4KICAgICBDb2RlTG9j
YXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBkb25lTG9jYXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklUQ29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9CYXNlbGluZUpJVENvZGUuaAppbmRleCAxNWU5NjdjMTBlZmM0YjY3MTQ0
Y2ViYmZjNjc1MDJiYmY2NmNiZDYyLi5mNjU3YzRiYTBlZjYyYmVmMGIyZjQ1ZDc2OWI1NDM1ZDAx
YmRkYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklU
Q29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQmFzZWxpbmVKSVRDb2RlLmgK
QEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgQmFzZWxpbmVKSVRDb2RlIDogcHVibGljIERpcmVjdEpJ
VENvZGUsIHB1YmxpYyBNYXRoSUNIb2xkZXIgewogCiAgICAgQmFnPFVubGlua2VkQ2FsbExpbmtJ
bmZvPiBtX3VubGlua2VkQ2FsbHM7CiAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9ldmFsQ2FsbExp
bmtJbmZvczsKLSAgICBCYWc8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbz4gbV91bmxpbmtlZFN0
dWJJbmZvczsKKyAgICBGaXhlZFZlY3RvcjxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvPiBtX3Vu
bGlua2VkU3R1YkluZm9zOwogICAgIEZpeGVkVmVjdG9yPFNpbXBsZUp1bXBUYWJsZT4gbV9zd2l0
Y2hKdW1wVGFibGVzOwogICAgIEZpeGVkVmVjdG9yPFN0cmluZ0p1bXBUYWJsZT4gbV9zdHJpbmdT
d2l0Y2hKdW1wVGFibGVzOwogICAgIEpJVENvZGVNYXAgbV9qaXRDb2RlTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCmluZGV4IGIxNzljODUxNTBkZDljN2QzOTllMGNjNzNhYTlmZTY0NGJj
ODEwMDcuLmRiYzc4NGJjNmQ1NWM3ZmQwOTFiOGI2ZGE2NDIxOGI3MTNmM2U3ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTkzLDYgKzkzLDE0IEBAIEpJVENvbnN0YW50UG9vbDo6
Q29uc3RhbnQgSklUOjphZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGUgdHlw
ZSwgdm9pCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RkOjp0dXBsZTxVbmxpbmtlZFN0cnVj
dHVyZVN0dWJJbmZvKiwgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudD4gSklUOjphZGRVbmxpbmtl
ZFN0cnVjdHVyZVN0dWJJbmZvKCkKK3sKKyAgICB2b2lkKiB1bmxpbmtlZFN0dWJJbmZvSW5kZXgg
PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV91bmxpbmtlZFN0
dWJJbmZvcy5zaXplKCkpKTsKKyAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
byA9ICZtX3VubGlua2VkU3R1YkluZm9zLmFsbG9jKCk7CisgICAgSklUQ29uc3RhbnRQb29sOjpD
b25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29s
OjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgdW5saW5rZWRTdHViSW5mb0luZGV4KTsKKyAgICBy
ZXR1cm4gc3RkOjp0dXBsZSB7IHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IH07Cit9CisKICNpZiBF
TkFCTEUoREZHX0pJVCkKIHZvaWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiB7
CkBAIC05OTMsNyArMTAwMSw5IEBAIHZvaWQgSklUOjpsaW5rKCkKIAogICAgIG1faml0Q29kZS0+
bV91bmxpbmtlZENhbGxzID0gV1RGTW92ZShtX3VubGlua2VkQ2FsbHMpOwogICAgIG1faml0Q29k
ZS0+bV9ldmFsQ2FsbExpbmtJbmZvcyA9IFdURk1vdmUobV9ldmFsQ2FsbExpbmtJbmZvcyk7Ci0g
ICAgbV9qaXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zID0gV1RGTW92ZShtX3VubGlua2VkU3R1
YkluZm9zKTsKKyAgICBtX2ppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3MgPSBGaXhlZFZlY3Rv
cjxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvPihtX3VubGlua2VkU3R1YkluZm9zLnNpemUoKSk7
CisgICAgaWYgKG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcy5zaXplKCkpCisgICAgICAg
IHN0ZDo6Y29weShtX3VubGlua2VkU3R1YkluZm9zLmJlZ2luKCksIG1fdW5saW5rZWRTdHViSW5m
b3MuZW5kKCksIG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcy5iZWdpbigpKTsKICAgICBt
X2ppdENvZGUtPm1fc3dpdGNoSnVtcFRhYmxlcyA9IFdURk1vdmUobV9zd2l0Y2hKdW1wVGFibGVz
KTsKICAgICBtX2ppdENvZGUtPm1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcyA9IFdURk1vdmUobV9z
dHJpbmdTd2l0Y2hKdW1wVGFibGVzKTsKICAgICBtX2ppdENvZGUtPm1faml0Q29kZU1hcCA9IGpp
dENvZGVNYXBCdWlsZGVyLmZpbmFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCA0
NjlkM2UwODI2OTc3YWQyM2ZmMTExZDVhNmVmZDhlMWVjYjAwOGVlLi42NTA5NDZkMWU1N2NhOWQ1
YTY0MWQ5NzU3ZGYzMzMyMWM5N2JmZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTk1
Nyw2ICs5NTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCByZXNldFNQKCk7CiAK
ICAgICAgICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBhZGRUb0NvbnN0YW50UG9vbChKSVRD
b25zdGFudFBvb2w6OlR5cGUsIHZvaWQqIHBheWxvYWQgPSBudWxscHRyKTsKKyAgICAgICAgc3Rk
Ojp0dXBsZTxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiwgSklUQ29uc3RhbnRQb29sOjpDb25z
dGFudD4gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogCiAgICAgICAgIEludGVycHJl
dGVyKiBtX2ludGVycHJldGVyOwogCkBAIC0xMDI5LDcgKzEwMzAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBtX2dsb2JhbE9iamVjdENvbnN0
YW50IHsgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIH07CiAgICAgICAgIEJh
ZzxVbmxpbmtlZENhbGxMaW5rSW5mbz4gbV91bmxpbmtlZENhbGxzOwogICAgICAgICBCYWc8Q2Fs
bExpbmtJbmZvPiBtX2V2YWxDYWxsTGlua0luZm9zOwotICAgICAgICBCYWc8VW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbz4gbV91bmxpbmtlZFN0dWJJbmZvczsKKyAgICAgICAgU2VnbWVudGVkVmVj
dG9yPFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8+IG1fdW5saW5rZWRTdHViSW5mb3M7CiAgICAg
ICAgIEZpeGVkVmVjdG9yPFNpbXBsZUp1bXBUYWJsZT4gbV9zd2l0Y2hKdW1wVGFibGVzOwogICAg
ICAgICBGaXhlZFZlY3RvcjxTdHJpbmdKdW1wVGFibGU+IG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxl
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKaW5kZXggMzQ3ZTYwZTFmZDk5
ZmM4Y2IwMmEzODYxOTNjNWVhMzZkMGNmNjVmNy4uNTdkYzY2MTkwMDg1NGQ2NTAzMGNmMjVjNWE4
NDI5YjFkNjUwNmQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCkBAIC00
OTAsMTAgKzQ5MCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX29wZW4oY29uc3QgSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGlu
ZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2Rl
SW5kZXgobV9ieXRlY29kZUluZGV4Lm9mZnNldCgpKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJv
bUltbW9ydGFsSWRlbnRpZmllcihpZGVudC0+aW1wbCgpKSwgYmFzZUpTUiwgcmVzdWx0SlNSLCBz
dHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0
byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJ
bmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkOwog
ICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENv
bnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJ
VENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBn
ZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAg
Z2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC02MDEsMTAgKzYwMCw5IEBA
IHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX25leHQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3Ry
dWN0aW9uKQogICAgICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KG1fYnl0
ZWNvZGVJbmRleC5vZmZzZXQoKSkpLCBwcmVzZXJ2ZWRSZWdzLAogICAgICAgICAgICAgQ2FjaGVh
YmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUltbW9ydGFsSWRlbnRpZmllcih2bSgpLnByb3BlcnR5
TmFtZXMtPmRvbmUuaW1wbCgpKSwgcmV0dXJuVmFsdWVKU1IsIGRvbmVKU1IsIHN0dWJJbmZvR1BS
LCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKIAotICAgICAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgICAgIGF1dG8g
WyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5m
bygpOwogICAgICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkdldEJ5SWQ7
CiAgICAgICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAg
ICAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0
YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5m
byk7CiAgICAgICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1Yklu
Zm9JbmRleDsKICAgICAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBA
IC02MzQsMTAgKzYzMiw5IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX25leHQoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6
QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChC
eXRlY29kZUluZGV4KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpLCBSZWdpc3RlclNldDo6c3R1
YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVy
OjpjcmVhdGVGcm9tSW1tb3J0YWxJZGVudGlmaWVyKHZtKCkucHJvcGVydHlOYW1lcy0+dmFsdWUu
aW1wbCgpKSwgYmFzZUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0
QnlJZCk7CiAKLSAgICAgICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBt
X3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAgICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJ
bmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICAgICAgc3R1
YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkOwogICAgICAgICBzdHViSW5m
by0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICAgICAgSklUQ29uc3RhbnRQ
b29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3Rh
bnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgICAgICBnZW4u
bV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgICAg
IGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBiZGE1
MWE0OGQ4MDc0ZDRmNmQyYmMzYTE5YTBjNzg1OWZmMTcwM2E2Li5hOTFhNjcxNmFlZDdiNzNiZmJj
NjBhMzBlMzdhOWViY2ViYmVhZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtMzksMjYgKzM5LDI0IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgU3RydWN0dXJlU3R1YkluZm8qIGdhcmJhZ2VTdHVi
SW5mbygpCi17Ci0gICAgc3RhdGljIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG5ldyBT
dHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NUeXBlOjpHZXRCeUlkLCBDb2RlT3JpZ2luKCkpOwotICAg
IHJldHVybiBzdHViSW5mbzsKLX0KLQogSklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6OkpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yKAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5
cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwgQWNjZXNz
VHlwZSBhY2Nlc3NUeXBlLAogICAgIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzKQog
ICAgIDogbV9qaXRUeXBlKGppdFR5cGUpCiB7Ci0gICAgbV9zdHViSW5mbyA9IGNvZGVCbG9jayA/
IGNvZGVCbG9jay0+YWRkU3R1YkluZm8oYWNjZXNzVHlwZSwgY29kZU9yaWdpbikgOiBnYXJiYWdl
U3R1YkluZm8oKTsKLSAgICBtX3N0dWJJbmZvLT5jYWxsU2l0ZUluZGV4ID0gY2FsbFNpdGU7Ci0K
LSAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzID0gdXNlZFJlZ2lzdGVyczsKKyAgICBpZiAo
SklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKG1faml0VHlwZSkpIHsKKyAgICAgICAgQVNTRVJUKGNv
ZGVCbG9jayk7CisgICAgICAgIG1fc3R1YkluZm8gPSBjb2RlQmxvY2stPmFkZE9wdGltaXppbmdT
dHViSW5mbyhhY2Nlc3NUeXBlLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgbV9zdHViSW5mby0+Y2Fs
bFNpdGVJbmRleCA9IGNhbGxTaXRlOworICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJz
ID0gdXNlZFJlZ2lzdGVyczsKKyAgICB9IGVsc2UKKyAgICAgICAgQVNTRVJUKCFjb2RlQmxvY2sp
OwogfQogCiB2b2lkIEpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpmaW5hbGl6ZSgKICAgICBMaW5r
QnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgsIENvZGVMb2NhdGlvbkxhYmVs
PEpJVFN0dWJSb3V0aW5lUHRyVGFnPiBzdGFydCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7
CiAgICAgbV9zdHViSW5mby0+c3RhcnQgPSBzdGFydDsKICAgICBtX3N0dWJJbmZvLT5kb25lTG9j
YXRpb24gPSBmYXN0UGF0aC5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KG1fZG9uZSk7CiAK
QEAgLTgzLDE5ICs4MSwyMiBAQCBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAog
ICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQogewotICAgIG1fc3R1Yklu
Zm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQ
UiA9IHZhbHVlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnRoaXNHUFIgPSBJ
bnZhbGlkR1BSUmVnOwotICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQ
UjsKKyAgICBpZiAobV9zdHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0g
YmFzZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gdmFsdWUu
cGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnRoaXNHUFIgPSBJbnZhbGlk
R1BSUmVnOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7
CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFz
ZS50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigp
OwotICAgIG1fc3R1YkluZm8tPnYudGhpc1RhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAg
IG1fc3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJ
bmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52
LnRoaXNUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJ
VEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVy
JiBzbG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3I6OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBhdGgubG9jYXRp
b25PZjxKSVRTdHViUm91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChKSVRDb2RlOjp1
c2VEYXRhSUMobV9qaXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9z
dHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMTI2LDYgKzEyNyw3IEBAIEpJVEdl
dEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IoCiAKIHZvaWQgSklUR2V0QnlJZEdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFT
U0VSVChtX3N0dWJJbmZvKTsKICAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBtX2lzTGVuZ3Ro
QWNjZXNzID8gSW5saW5lQWNjZXNzOjpzaXplRm9yTGVuZ3RoQWNjZXNzKCkgOiBJbmxpbmVBY2Nl
c3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKIH0KIApAQCAtMTY3LDE1ICsxNjksMTcgQEAg
SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3Io
CiAgICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgaml0VHlwZSwgY29kZU9yaWdpbiwg
Y2FsbFNpdGUsIEFjY2Vzc1R5cGU6OkdldEJ5SWRXaXRoVGhpcywgdXNlZFJlZ2lzdGVycywgYmFz
ZSwgdmFsdWUsIHN0dWJJbmZvR1BSKQogewogICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNSZWdzLnBh
eWxvYWRHUFIoKSAhPSB0aGlzUmVncy50YWdHUFIoKSk7Ci0KLSAgICBtX3N0dWJJbmZvLT5yZWdz
LnRoaXNHUFIgPSB0aGlzUmVncy5wYXlsb2FkR1BSKCk7CisgICAgaWYgKG1fc3R1YkluZm8pIHsK
KyAgICAgICAgbV9zdHViSW5mby0+cmVncy50aGlzR1BSID0gdGhpc1JlZ3MucGF5bG9hZEdQUigp
OwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5mby0+di50aGlzVGFnR1BSID0g
dGhpc1JlZ3MudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYudGhpc1RhZ0dQUiA9IHRo
aXNSZWdzLnRhZ0dQUigpOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJVEdldEJ5SWRXaXRo
VGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogewor
ICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxp
bmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKIH0KIApAQCAtMjAzLDcgKzIwNyw4
IEBAIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0b3IoCiAgICAgICAgICwg
bV9lY21hTW9kZShlY21hTW9kZSkKICAgICAgICAgLCBtX3B1dEtpbmQocHV0S2luZCkKIHsKLSAg
ICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOworICAgIGlmIChtX3N0
dWJJbmZvKQorICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gp
OwogfQogCiB2b2lkIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNG
YXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikK
QEAgLTIzNCw2ICsyMzksNyBAQCB2b2lkIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFz
ZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YgogCiB2b2lkIEpJVFB1
dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIHsK
KyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5s
aW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlSZXBsYWNlKCkpOwogfQogCkBAIC0yNjMsMjMgKzI2
OSwyOCBAQCBWX0pJVE9wZXJhdGlvbl9HU3NpSkpDIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OnNsb3dQ
YXRoRnVuY3Rpb24oKQogSklURGVsQnlWYWxHZW5lcmF0b3I6OkpJVERlbEJ5VmFsR2VuZXJhdG9y
KENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNl
ZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFs
dWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCkKICAgICA6
IEJhc2UoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBBY2Nl
c3NUeXBlOjpEZWxldGVCeVZhbCwgdXNlZFJlZ2lzdGVycykKIHsKLSAgICBtX3N0dWJJbmZvLT5o
YXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsKICAgICBBU1NFUlQoYmFzZS5wYXlsb2FkR1BS
KCkgIT0gcmVzdWx0LnBheWxvYWRHUFIoKSk7Ci0gICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJh
c2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlHUFIgPSBwcm9w
ZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5
bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsK
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEFTU0VSVChiYXNlLnRhZ0dQUigpICE9IHJlc3Vs
dC50YWdHUFIoKSk7Ci0gICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7
Ci0gICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSByZXN1bHQudGFnR1BSKCk7Ci0gICAgbV9z
dHViSW5mby0+di5wcm9wZXJ0eVRhZ0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOwogI2VuZGlmCi0g
ICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycy5jbGVhcihzY3JhdGNoKTsKKyAgICBpZiAobV9z
dHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBm
YWxzZTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwor
ICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5bG9hZEdQ
UigpOworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3VsdC5wYXlsb2FkR1BSKCk7
CisgICAgICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50
YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSByZXN1bHQudGFnR1BS
KCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdHUFIgPSBwcm9wZXJ0eS50YWdH
UFIoKTsKKyNlbmRpZgorICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNj
cmF0Y2gpOworICAgIH0KIH0KIAogdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsK
ICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyht
X2ppdFR5cGUpKSB7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CkBAIC0yOTEsNiArMzAy
LDcgQEAgdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYgaml0KQogCiB2b2lkIEpJVERlbEJ5VmFsR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5r
QnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiB7CisgICAgQVNTRVJUKG1f
c3R1YkluZm8pOwogICAgIEJhc2U6OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBh
dGgubG9jYXRpb25PZjxKSVRTdHViUm91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2Rl
UHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMjk5LDIzICszMTEs
MjggQEAgdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZlciYgZmFz
dFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogSklURGVsQnlJZEdlbmVyYXRvcjo6SklURGVs
QnlJZEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRUeXBlLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwgY29uc3QgUmVn
aXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZpZXIsIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2Ny
YXRjaCkKICAgICA6IEJhc2UoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0
ZUluZGV4LCBBY2Nlc3NUeXBlOjpEZWxldGVCeUlELCB1c2VkUmVnaXN0ZXJzKQogewotICAgIG1f
c3R1YkluZm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IHRydWU7CiAgICAgQVNTRVJUKGJhc2Uu
cGF5bG9hZEdQUigpICE9IHJlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgIG1fc3R1YkluZm8tPmJh
c2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5
R1BSID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3VsdC5w
YXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BS
OwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgQVNTRVJUKGJhc2UudGFnR1BSKCkgIT0gcmVz
dWx0LnRhZ0dQUigpKTsKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIo
KTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKLSAgICBt
X3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gSW52YWxpZEdQUlJlZzsKICNlbmRpZgotICAg
IG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaCk7CisgICAgaWYgKG1fc3R1
YkluZm8pIHsKKyAgICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gdHJ1
ZTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOworICAg
ICAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAg
ICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOworICAgICAgICBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7Cisg
ICAgICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gcmVzdWx0LnRhZ0dQUigpOworICAgICAg
ICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyNlbmRpZgor
ICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOworICAgIH0K
IH0KIAogdm9pZCBKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNz
ZW1ibGVyJiBqaXQpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBq
aXQubGFiZWwoKTsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKICAg
ICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKQEAgLTMyNyw2ICszNDQsNyBAQCB2b2lkIEpJVERl
bEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIAog
dm9pZCBKSVREZWxCeUlkR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwg
TGlua0J1ZmZlciYgc2xvd1BhdGgpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIEJh
c2U6OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBhdGgubG9jYXRpb25PZjxKSVRT
dHViUm91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMo
bV9qaXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9zdHViSW5mby0+
c2xvd1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMzM1LDIxICszNTMsMjMgQEAgdm9pZCBKSVREZWxC
eUlkR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYg
c2xvd1BhdGgpCiBKSVRJbkJ5VmFsR2VuZXJhdG9yOjpKSVRJbkJ5VmFsR2VuZXJhdG9yKENvZGVC
bG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
Q2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVn
cyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIpCiAgICAg
OiBCYXNlKGNvZGVCbG9jaywgaml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgYWNj
ZXNzVHlwZSwgdXNlZFJlZ2lzdGVycykKIHsKLSAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElk
ZW50aWZpZXIgPSBmYWxzZTsKLQotICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxv
YWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5
bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gcmVzdWx0LnBheWxvYWRHUFIo
KTsKLSAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisgICAgaWYg
KG1fc3R1YkluZm8pIHsKKyAgICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVy
ID0gZmFsc2U7CisgICAgICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIo
KTsKKyAgICAgICAgbV9zdHViSW5mby0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxv
YWRHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQ
UigpOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAj
aWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50
YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsK
LSAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7Cisg
ICAgICAgIG1fc3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBt
X3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHVi
SW5mby0+di5wcm9wZXJ0eVRhZ0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOwogI2VuZGlmCisgICAg
fQogfQogCiB2b2lkIEpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImIGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkgewog
ICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9zdHViSW5mbyks
IG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwpAQCAtMzYzLDYgKzM4Myw3IEBAIHZvaWQgSklU
SW5CeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoCiAgICAgTGlua0J1ZmZlciYgZmFzdFBhdGgsIExp
bmtCdWZmZXImIHNsb3dQYXRoKQogewogICAgIEFTU0VSVChtX3N0YXJ0LmlzU2V0KCkpOworICAg
IEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1Bh
dGgsIGZhc3RQYXRoLmxvY2F0aW9uT2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsK
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1Yklu
Zm8tPm1fY29kZVB0ciA9IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTM4
MCw2ICs0MDEsNyBAQCBKSVRJbkJ5SWRHZW5lcmF0b3I6OkpJVEluQnlJZEdlbmVyYXRvcigKIAog
dm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
IGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgZ2VuZXJhdGVGYXN0Q29tbW9u
KGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CiB9CiAKQEAgLTQx
NSwyOSArNDM3LDMxIEBAIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5l
cmF0b3IoCiAgICAgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIGJvb2wgcHJvdG90
eXBlSXNLbm93bk9iamVjdCkKICAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9j
aywgaml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZTo6SW5zdGFu
Y2VPZiwgdXNlZFJlZ2lzdGVycykKIHsKLSAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gdmFsdWU7
Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQ7Ci0gICAgbV9zdHViSW5mby0+cmVn
cy5wcm90b3R5cGVHUFIgPSBwcm90b3R5cGU7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQ
UiA9IHN0dWJJbmZvR1BSOworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1Yklu
Zm8tPmJhc2VHUFIgPSB2YWx1ZTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1
bHQ7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvdG90eXBlR1BSID0gcHJvdG90eXBlOwor
ICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gSW52YWxpZEdQUlJl
ZzsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgbV9z
dHViSW5mby0+di50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9zdHViSW5m
by0+YmFzZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVl
VGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9zdHViSW5mby0+di50aGlzVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKICNlbmRpZgogCi0gICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVy
cy5jbGVhcihyZXN1bHQpOwotICAgIGlmIChzY3JhdGNoMSAhPSBJbnZhbGlkR1BSUmVnKQotICAg
ICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gxKTsKLSAgICBpZiAo
c2NyYXRjaDIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgbV9zdHViSW5mby0+dXNlZFJlZ2lz
dGVycy5jbGVhcihzY3JhdGNoMik7Ci0KLSAgICBtX3N0dWJJbmZvLT5wcm90b3R5cGVJc0tub3du
T2JqZWN0ID0gcHJvdG90eXBlSXNLbm93bk9iamVjdDsKKyAgICAgICAgbV9zdHViSW5mby0+dXNl
ZFJlZ2lzdGVycy5jbGVhcihyZXN1bHQpOworICAgICAgICBpZiAoc2NyYXRjaDEgIT0gSW52YWxp
ZEdQUlJlZykKKyAgICAgICAgICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2Ny
YXRjaDEpOworICAgICAgICBpZiAoc2NyYXRjaDIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAg
ICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaDIpOwogCi0gICAgbV9z
dHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7CisgICAgICAgIG1fc3R1Yklu
Zm8tPnByb3RvdHlwZUlzS25vd25PYmplY3QgPSBwcm90b3R5cGVJc0tub3duT2JqZWN0OworICAg
ICAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsKKyAgICB9CiB9
CiAKIHZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0g
aml0LmxhYmVsKCk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CiAg
ICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwg
bV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CkBAIC00NDksNiArNDczLDcgQEAgdm9pZCBKSVRJ
bnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQp
CiAKIHZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZlciYgZmFz
dFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsK
ICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1BhdGgsIGZhc3RQYXRoLmxvY2F0aW9u
T2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsKICAgICBpZiAoSklUQ29kZTo6dXNl
RGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0ciA9IG1fc3R1
YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTQ1OSwyMSArNDg0LDIzIEBAIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9j
aywgSklUVHlwZSBqaXRUeXBlCiAgICAgLCBtX2Jhc2UoYmFzZSkKICAgICAsIG1fcmVzdWx0KHJl
c3VsdCkKIHsKLSAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsK
LQotICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5bG9hZEdQUigpOwotICAgIG1f
c3R1YkluZm8tPnZhbHVlR1BSID0gcmVzdWx0LnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZv
LT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisgICAgaWYgKG1fc3R1YkluZm8pIHsKKyAg
ICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7CisgICAgICAg
IG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9zdHVi
SW5mby0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxvYWRHUFIoKTsKKyAgICAgICAg
bV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0
dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52
LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8t
PmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZVRh
Z0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+di5wcm9wZXJ0eVRh
Z0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiB7
CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKICAg
ICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0
dWJJbmZvR1BSKTsKQEAgLTQ4NSw2ICs1MTIsNyBAQCB2b2lkIEpJVEdldEJ5VmFsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiAKIHZvaWQgSklUR2V0QnlW
YWxHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBz
bG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgQmFzZTo6ZmluYWxpemUo
ZmFzdFBhdGgsIHNsb3dQYXRoLCBmYXN0UGF0aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRy
VGFnPihtX3N0YXJ0KSk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQog
ICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQdHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0
TG9jYXRpb247CkBAIC00OTUsMjIgKzUyMywyNCBAQCBKSVRQdXRCeVZhbEdlbmVyYXRvcjo6SklU
UHV0QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5cGUgaml0VHlwZQog
ICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQogewotICAgIG1fc3R1Yklu
Zm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IGZhbHNlOwotCi0gICAgbV9zdHViSW5mby0+YmFz
ZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlH
UFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSB2
YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJ
bmZvR1BSOwotICAgIG1fc3R1YkluZm8tPm1fYXJyYXlQcm9maWxlR1BSID0gYXJyYXlQcm9maWxl
R1BSOworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0
YW50SWRlbnRpZmllciA9IGZhbHNlOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gYmFz
ZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlHUFIgPSBw
cm9wZXJ0eS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gdmFs
dWUucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1
YkluZm9HUFI7CisgICAgICAgIG1fc3R1YkluZm8tPm1fYXJyYXlQcm9maWxlR1BSID0gYXJyYXlQ
cm9maWxlR1BSOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5mby0+YmFzZVRh
Z0dQUiA9IGJhc2UudGFnR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSB2YWx1
ZS50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHku
dGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigp
OworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOworICAg
ICAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7CiAj
ZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAg
ICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9q
aXRUeXBlKSkgewogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
bV9zdHViSW5mbyksIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwpAQCAtNTIyLDYgKzU1Miw3
IEBAIHZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImIGppdCkKIAogdm9pZCBKSVRQdXRCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1
ZmZlciYgZmFzdFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0
dWJJbmZvKTsKICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1BhdGgsIGZhc3RQYXRo
LmxvY2F0aW9uT2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsKICAgICBpZiAoSklU
Q29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0
ciA9IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTUzMSwyMSArNTYyLDIz
IEBAIEpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6SklUUHJpdmF0ZUJyYW5kQWNjZXNz
R2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsCiAgICAgOiBCYXNlKGNvZGVCbG9jaywgaml0VHlw
ZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgYWNjZXNzVHlwZSwgdXNlZFJlZ2lzdGVycykK
IHsKICAgICBBU1NFUlQoYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBlOjpDaGVja1ByaXZhdGVCcmFu
ZCB8fCBhY2Nlc3NUeXBlID09IEFjY2Vzc1R5cGU6OlNldFByaXZhdGVCcmFuZCk7Ci0gICAgbV9z
dHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7Ci0KLSAgICBtX3N0dWJJbmZv
LT5iYXNlR1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+cmVncy5icmFu
ZEdQUiA9IGJyYW5kLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IElu
dmFsaWRHUFJSZWc7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BS
OworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0YW50
SWRlbnRpZmllciA9IGZhbHNlOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gYmFzZS5w
YXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MuYnJhbmRHUFIgPSBicmFuZC5w
YXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gSW52YWxpZEdQUlJl
ZzsKKyAgICAgICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BSOwogI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFn
R1BSKCk7Ci0gICAgbV9zdHViSW5mby0+di5icmFuZFRhZ0dQUiA9IGJyYW5kLnRhZ0dQUigpOwot
ICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9z
dHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8t
PnYuYnJhbmRUYWdHUFIgPSBicmFuZC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFs
dWVUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJVFBy
aXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxl
ciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0Lmxh
YmVsKCk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CiAgICAgICAg
IGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHVi
SW5mby0+bV9zdHViSW5mb0dQUik7CkBAIC01NTcsNiArNTkwLDcgQEAgdm9pZCBKSVRQcml2YXRl
QnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGpp
dCkKIAogdm9pZCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtC
dWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9z
dHViSW5mbyk7CiAgICAgQmFzZTo6ZmluYWxpemUoZmFzdFBhdGgsIHNsb3dQYXRoLCBmYXN0UGF0
aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihtX3N0YXJ0KSk7CiAgICAgaWYgKEpJ
VENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQogICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQ
dHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggZWJkZTQy
NGNhNmQ0YWQ2N2ViZjk0OTYxNzdiMGVmZWM3ZjY4ZGYyYy4uNzE2ZDAyNmM5Yzg4ODA2NmU3YTY3
MjU4YjZmYWViYWRmYzFkNzhiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApAQCAtMjYzLDcgKzI2Myw3IEBAIGNsYXNzIEpJ
VElubGluZUNhY2hlR2VuZXJhdG9yIHsKIAogcHJvdGVjdGVkOgogICAgIEpJVFR5cGUgbV9qaXRU
eXBlOwotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBtX3N0dWJJbmZvOworICAgIFN0cnVjdHVyZVN0
dWJJbmZvKiBtX3N0dWJJbmZvIHsgbnVsbHB0ciB9OwogCiBwdWJsaWM6CiAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIG1fc3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcAppbmRleCA4ZDU1YzFjNmJlYzE1NWUyZmI5MjlkMDZlN2MwODE3MGMzYzA1NWRlLi4wOTdk
ZDk3MTVlZWNiNDJmNGIyMjY5YzRmMzg4MzkxMWRkNTI5ZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTE3NywxMCArMTc3LDkgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfaW5zdGFuY2VvZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgICAgICBzdHViSW5mb0dQUiwKICAgICAgICAgQmFzZWxpbmVJbnN0YW5jZW9mUmVnaXN0ZXJz
OjpzY3JhdGNoMSwgQmFzZWxpbmVJbnN0YW5jZW9mUmVnaXN0ZXJzOjpzY3JhdGNoMik7CiAKLSAg
ICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5m
b3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxp
bmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nl
c3NUeXBlOjpJbnN0YW5jZU9mOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRl
Y29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9
IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1Yklu
Zm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9
IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXgg
YjRlODBlNWY2ZDVhNDk4MzcyMTBhN2JkZDVjNjY4MTk1NDhlMzNmNS4uMDU4MTkzYmY5MjM4NDhj
ZDU2NGExNGViN2ZjOGQwZjUyZTRiYjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMTc1LDEwICsxNzUsOSBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9pbnN0YW5jZW9mKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgICAgIHN0dWJJbmZvR1BSLAogICAgICAgICBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIpOwog
Ci0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0g
QWNjZXNzVHlwZTo6SW5zdGFuY2VPZjsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1f
Ynl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5k
ZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0
dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5k
ZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5m
bzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cAppbmRleCAzN2M5MmEyOGMzZjdmYjVhZDE0NzM3NGJlMzIxZTNkMGVhOTEwYzYwLi42YTM5MWUz
ZDU5M2U2N2U4ZmI3N2ExOWMzMmQzOGU3OGZkNGYwOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtNzUsMTMgKzc1LDExIEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwg
QWNjZXNzVHlwZTo6R2V0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKICAgICAgICAgICAgIGJhc2VKU1IsIHByb3BlcnR5SlNSLCByZXN1bHRKU1IsIHN0dWJJ
bmZvR1BSKTsKIAotICAgICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQot
ICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Ci0KLSAg
ICAgICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9
IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICAgICAgc3R1YkluZm8tPmFjY2Vz
c1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeVZhbDsKICAgICAgICAgc3R1YkluZm8tPmJ5dGVjb2Rl
SW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3Rh
bnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlw
ZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKKyAgICAgICAgaWYgKGlzT3BlcmFuZENv
bnN0YW50SW50KHByb3BlcnR5KSkKKyAgICAgICAgICAgIHN0dWJJbmZvLT5wcm9wZXJ0eUlzSW50
MzIgPSB0cnVlOwogICAgICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9
IHN0dWJJbmZvSW5kZXg7CiAgICAgICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5m
bzsKIApAQCAtMTQ5LDcgKzE0Nyw2IEBAIHZvaWQgSklUOjpnZW5lcmF0ZUdldEJ5VmFsU2xvd0Nh
c2UoY29uc3QgT3Bjb2RlVHlwZSYgYnl0ZWNvZGUsIFZlY3RvcjxTbG93Q2FzZUVuCiAgICAgbG9h
ZENvbnN0YW50KGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4LCBzdHViSW5mb0dQ
Uik7CiAgICAgbWF0ZXJpYWxpemVQb2ludGVySW50b01ldGFkYXRhKGJ5dGVjb2RlLCBPcGNvZGVU
eXBlOjpNZXRhZGF0YTo6b2Zmc2V0T2ZBcnJheVByb2ZpbGUoKSwgcHJvZmlsZUdQUik7CiAgICAg
ZW1pdE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1YihzbG93X29wX2dldF9ieV92YWxfcHJlcGFy
ZUNhbGxHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7Ci0KICAgICBlbWl0TmFr
ZWROZWFyQ2FsbCh2bS5nZXRDVElTdHViKGNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKS5yZXRhZ2dl
ZENvZGU8Tm9QdHJUYWc+KCkpOwogCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29k
ZSwgcmV0dXJuVmFsdWVHUFIpOwpAQCAtMjI0LDEwICsyMjEsOSBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9nZXRfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6
R2V0UHJpdmF0ZU5hbWUsCiAgICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdp
c3RlcnMoKSwgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIpOwog
Ci0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0g
QWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWU7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXgg
PSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5m
b0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1
cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFu
dEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1
YkluZm87CiAKQEAgLTM0NywxMCArMzQzLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc2V0X3ByaXZh
dGVfYnJhbmQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAg
bnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpTZXRQcml2YXRl
QnJhbmQsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAg
YmFzZUpTUiwgYnJhbmRKU1IsIHN0dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRv
IFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1Yklu
Zm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OlNldFByaXZhdGVC
cmFuZDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAg
ICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50
UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7
CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4
OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtNDMyLDEwICs0
MjcsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jaGVja19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJh
c2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6Q2hlY2tQcml2YXRlQnJhbmQsIFJlZ2lzdGVyU2V0
OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgYmFzZUpTUiwgYnJhbmRKU1Is
IHN0dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
ID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJ
bmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5m
by0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkNoZWNrUHJpdmF0ZUJyYW5kOwogICAgIHN0dWJJ
bmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9v
bDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50
UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxp
bmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5s
aW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC01MTcsMTUgKzUxMSwxMyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9wdXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlw
ZTo6UHV0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAg
ICAgICAgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHZhbHVlSlNSLCBwcm9maWxlR1BSLCBzdHViSW5m
b0dQUik7CiAKLSAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQotICAgICAg
ICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKLQotICAgIFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsK
KyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OlB1
dEJ5VmFsOwogICAgIHN0dWJJbmZvLT5wdXRLaW5kID0gc3RkOjppc19zYW1lX3Y8T3AsIE9wUHV0
QnlWYWxEaXJlY3Q+ID8gUHV0S2luZDo6RGlyZWN0IDogUHV0S2luZDo6Tm90RGlyZWN0OwogICAg
IHN0dWJJbmZvLT5lY21hTW9kZSA9IGVjbWFNb2RlKGJ5dGVjb2RlKTsKICAgICBzdHViSW5mby0+
Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNv
bnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6
OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7CisgICAgaWYgKGlzT3BlcmFuZENv
bnN0YW50SW50KHByb3BlcnR5KSkKKyAgICAgICAgc3R1YkluZm8tPnByb3BlcnR5SXNJbnQzMiA9
IHRydWU7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5m
b0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtNjA5
LDEyICs2MDEsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8UwogICAgIG1vdmUoVHJ1c3RlZElt
bTMyKGJ5dGVjb2RlT2Zmc2V0KSwgYnl0ZWNvZGVPZmZzZXRHUFIpOwogICAgIGxvYWRDb25zdGFu
dChnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCwgc3R1YkluZm9HUFIpOwogICAg
IGVtaXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoc2xvd19vcF9wdXRfYnlfdmFsX3ByZXBh
cmVDYWxsR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwotICAgIENhbGwgY2Fs
bDsKLSAgICBhdXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdE9w
dGltaXplKTsKLSAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkJhc2VsaW5lSklU
KSkKLSAgICAgICAgZ2VuLnN0dWJJbmZvKCktPm1fc2xvd09wZXJhdGlvbiA9IG9wZXJhdGlvbjsK
LSAgICBlbHNlCi0gICAgICAgIGNhbGwgPSBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgZW1p
dE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1YihjaGVja0V4Y2VwdGlvbkdlbmVyYXRvcikucmV0
YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICNlbmRpZiAvLyBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5L
UykKIApAQCAtNjg2LDExICs2NzIsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3ByaXZhdGVf
bmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBudWxs
cHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBD
YWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OlB1dFByaXZhdGVOYW1l
LCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGJhc2VK
U1IsIHByb3BlcnR5SlNSLCB2YWx1ZUpTUiwgSW52YWxpZEdQUlJlZywgc3R1YkluZm9HUFIpOwog
Ci0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0g
QWNjZXNzVHlwZTo6UHV0UHJpdmF0ZU5hbWU7CiAgICAgc3R1YkluZm8tPnByaXZhdGVGaWVsZFB1
dEtpbmQgPSBieXRlY29kZS5tX3B1dEtpbmQ7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXgg
PSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5m
b0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1
cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFu
dEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1
YkluZm87CiAKQEAgLTg2NiwxMCArODUxLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGVsX2J5X2lk
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIENhY2hlYWJs
ZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX3VubGlu
a2VkQ29kZUJsb2NrLCAqaWRlbnQpLAogICAgICAgICBiYXNlSlNSLCByZXN1bHRKU1IsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8s
IHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBz
dHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkRlbGV0ZUJ5SUQ7CiAgICAgc3R1Yklu
Zm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29s
OjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQ
b29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlu
a2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxp
bmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTkzMSw3ICs5MTUsNiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZGVsX2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbAogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihDYWNoZWFibGVJZGVudGlmaWVy
OjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV91bmxpbmtlZENvZGVCbG9j
aywgKmlkZW50KS5yYXdCaXRzKCkpLCBwcm9wZXJ0eUdQUik7CiAgICAgbW92ZShUcnVzdGVkSW1t
MzIoYnl0ZWNvZGUubV9lY21hTW9kZS52YWx1ZSgpKSwgZWNtYU1vZGVHUFIpOwogICAgIGVtaXRO
YWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoc2xvd19vcF9kZWxfYnlfaWRfcHJlcGFyZUNhbGxH
ZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7Ci0KICAgICBlbWl0TmFrZWROZWFy
Q2FsbCh2bS5nZXRDVElTdHViKGNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8
Tm9QdHJUYWc+KCkpOwogICAgIHN0YXRpY19hc3NlcnQocmV0dXJuVmFsdWVHUFIgPT0gcmVnVDAp
OwogI2VuZGlmIC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQpAQCAtMTAwMywxMCArOTg2LDkg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGVsX2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29k
ZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCks
IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgYmFzZUpT
UiwgcHJvcGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIpOwogCi0g
ICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1Yklu
Zm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5s
aW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNj
ZXNzVHlwZTo6RGVsZXRlQnlWYWw7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5
dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4
ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHVi
SW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4
ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87
CiAKQEAgLTEwNjksNyArMTA1MSw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9kZWxfYnlfdmFs
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTCiAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcHJvcGVydHlHUFIpOwogICAgIG1vdmUoVHJ1
c3RlZEltbTMyKGJ5dGVjb2RlLm1fZWNtYU1vZGUudmFsdWUoKSksIGVjbWFNb2RlR1BSKTsKICAg
ICBlbWl0TmFrZWROZWFyQ2FsbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfZGVsX2J5X3ZhbF9wcmVw
YXJlQ2FsbEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKLQogICAgIGVtaXRO
YWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoY2hlY2tFeGNlcHRpb25HZW5lcmF0b3IpLnJldGFn
Z2VkQ29kZTxOb1B0clRhZz4oKSk7CiAgICAgc3RhdGljX2Fzc2VydChyZXR1cm5WYWx1ZUdQUiA9
PSByZWdUMCk7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVOS1MpCkBAIC0xMTM3LDEw
ICsxMTE4LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNl
bGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0
ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAg
ICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29k
ZUJsb2NrKG1fdW5saW5rZWRDb2RlQmxvY2ssICppZGVudCksIGJhc2VKU1IsIHJlc3VsdEpTUiwg
c3R1YkluZm9HUFIsIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOwogCi0gICAgVW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAg
IGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVT
dHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6VHJ5R2V0
QnlJZDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAg
ICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50
UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7
CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4
OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtMTIyMSwxMCAr
MTIwMSw5IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFz
ZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLCBiYXNlSlNSLCByZXN1bHRKU1Is
IHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKIAotICAgIFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsK
KyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6Okdl
dEJ5SWREaXJlY3Q7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5k
ZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9D
b25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1
YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1Yklu
Zm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTEz
MTgsMTAgKzEyOTcsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFz
ZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLCBiYXNlSlNSLCByZXN1bHRKU1Is
IHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKIAotICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBh
dXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkdldEJ5SWQ7
CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklU
Q29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2wo
SklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAg
IGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAg
ICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE0MDgsMTAgKzEzODYs
OSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0aF90aGlzKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2Vs
aW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRl
Y29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAg
ICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2Rl
QmxvY2sobV91bmxpbmtlZENvZGVCbG9jaywgKmlkZW50KSwgcmVzdWx0SlNSLCBiYXNlSlNSLCB0
aGlzSlNSLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZv
LCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAg
c3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRoaXM7CiAgICAg
c3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3Rh
bnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29u
c3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5t
X3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4u
bV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE1OTEsMTIgKzE1NjgsMTEgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgICAgIGJhc2VKU1IsIHZhbHVlSlNSLCBzdHViSW5mb0dQUiwgc2NyYXRj
aEdQUiwgZWNtYU1vZGUoYnl0ZWNvZGUpLAogICAgICAgICBkaXJlY3QgPyBQdXRLaW5kOjpEaXJl
Y3QgOiBQdXRLaW5kOjpOb3REaXJlY3QpOwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHVi
SW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwog
ICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6UHV0QnlJZDsKICAgICBzdHVi
SW5mby0+cHV0S2luZCA9IGRpcmVjdCA/IFB1dEtpbmQ6OkRpcmVjdCA6IFB1dEtpbmQ6Ok5vdERp
cmVjdDsKICAgICBzdHViSW5mby0+ZWNtYU1vZGUgPSBlY21hTW9kZShieXRlY29kZSk7CiAgICAg
c3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3Rh
bnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29u
c3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5t
X3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4u
bV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE3MTgsMTAgKzE2OTQsOSBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9pbl9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lz
dGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRl
bnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fdW5saW5rZWRD
b2RlQmxvY2ssICppZGVudCksIGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIpOwogCi0g
ICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1Yklu
Zm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5s
aW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNj
ZXNzVHlwZTo6SW5CeUlkOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29k
ZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFk
ZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8s
IHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0
dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBA
IC0xODA3LDEwICsxNzgyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5fYnlfdmFsKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6
OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgo
bV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6SW5CeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgcmVz
dWx0SlNSLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZv
LCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAg
c3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpJbkJ5VmFsOwogICAgIHN0dWJJbmZv
LT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6
Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9v
bDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtl
ZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5r
ZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC0xODcwLDcgKzE4NDQsNiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfaW5fYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbAogICAgIC8vIFNvLCB0aGVyZSdzIG5vIHBvaW50IGluIGNyZWF0aW5nIGEg
ZHVwbGljYXRlIHRodW5rIGp1c3QgdG8gZ2l2ZSBpdCBhIGRpZmZlcmVudCBuYW1lLgogICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPGRlY2x0eXBlKG9wZXJhdGlvbkluQnlWYWxPcHRpbWl6
ZSksIGRlY2x0eXBlKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpPjo6dmFsdWUpOwogICAgIGVt
aXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoc2xvd19vcF9nZXRfYnlfdmFsX3ByZXBhcmVD
YWxsR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwotCiAgICAgZW1pdE5ha2Vk
TmVhckNhbGwodm0uZ2V0Q1RJU3R1YihjaGVja0V4Y2VwdGlvbkdlbmVyYXRvcikucmV0YWdnZWRD
b2RlPE5vUHRyVGFnPigpKTsKIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXR1
cm5WYWx1ZUdQUik7CkBAIC0xODk0LDEwICsxODY3LDkgQEAgdm9pZCBKSVQ6OmVtaXRIYXNQcml2
YXRlKFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBiYXNlLCBWaXJ0dWFsUmVn
aXMKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9i
eXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCB0eXBlLCBSZWdp
c3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGJhc2VKU1IsIHBy
b3BlcnR5SlNSLCByZXN1bHRKU1IsIHN0dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBh
dXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IHR5cGU7CiAgICAgc3R1YkluZm8t
PmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpD
b25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29s
OjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2Vk
U3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtl
ZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTMyMjcsMTAgKzMxOTksOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9lbnVtZXJhdG9yX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBB
Y2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlH
UFIpLCBKU1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtl
ZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7
CisgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVj
dHVyZVN0dWJJbmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpH
ZXRCeVZhbDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsK
LSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0
YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5m
byk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0lu
ZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvU2VnbWVudGVkVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWdt
ZW50ZWRWZWN0b3IuaAppbmRleCA4M2MxNzI5YTg2ZWYxZTRiMjA0M2ZiNjcxMzM0MDk0MzM2MTIw
MmE3Li5lMTUzYmQzNjllZDExZDc4ZWMxYTMzOTEwYmNkYTAxNTY1OGNjMjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9T
ZWdtZW50ZWRWZWN0b3IuaApAQCAtOTYsNyArOTYsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiAgICAgcHVibGljOgotICAgICAgICB0eXBl
ZGVmIFNlZ21lbnRlZFZlY3Rvckl0ZXJhdG9yPFQsIFNlZ21lbnRTaXplPiBJdGVyYXRvcjsKKyAg
ICAgICAgdXNpbmcgSXRlcmF0b3IgPSBTZWdtZW50ZWRWZWN0b3JJdGVyYXRvcjxULCBTZWdtZW50
U2l6ZT47CisKKyAgICAgICAgdXNpbmcgdmFsdWVfdHlwZSA9IFQ7CisgICAgICAgIHVzaW5nIGl0
ZXJhdG9yID0gSXRlcmF0b3I7CiAKICAgICAgICAgU2VnbWVudGVkVmVjdG9yKCkgPSBkZWZhdWx0
OwogCg==
</data>
<flag name="commit-queue"
          id="467476"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442885</attachid>
            <date>2021-10-29 17:24:15 -0700</date>
            <delta_ts>2021-10-29 19:08:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232513-20211029172414.patch</filename>
            <type>text/plain</type>
            <size>56355</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NTM2NGQ5NzJjYzg4OThmMGM4MWZjYTAxNmFmYTYxZGQyNGE3ZmU4Li5kYjdiNTM1Njg5MTEyYzE4
YWFmZTYwNmRjZmE5MzM2YTBlOWQzNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMjEtMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBDbGVhbiB1cCBCYXNlbGluZSBTdHJ1Y3R1cmVTdHViSW5mbyBt
YW5hZ2VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAxLiBXZSBzaG91bGQga2VlcCBHZW5lcmF0b3I6Om1fc3R1YkluZm8gbnVsbHB0ci4gQW5kIHdl
IGFkZCBzb21lIGFzc2VydGlvbnMgYWJvdXQgaXQgc2luY2UgaXQgc2hvdWxkIG5vdAorICAgICAg
ICAgICBiZSBhbGxvY2F0ZWQgYW5kIHVzZWQuCisgICAgICAgIDIuIFdlIGZvdW5kIHRoYXQgcHJv
cGVydHlJc0ludDMyIGZvciBvcF9nZXRfYnlfdmFsIGFuZCBvcF9wdXRfYnlfdmFsIGlzIG5vdCBh
cHByb3ByaWF0ZWx5IGNvbmZpZ3VyZWQgZm9yCisgICAgICAgICAgIFVubGlua2VkU3RydWN0dXJl
U3R1YkluZm8gKGl0IHdhcyBhY2NpZGVudGFsbHkgc2V0IGZvciB0aGUgYWJvdmUgd2FzdGVkIFN0
cnVjdHVyZVN0dWJJbmZvKS4gVGhpcyBwYXRjaAorICAgICAgICAgICBhdHRhY2hlcyB0aGF0IGlu
Zm9ybWF0aW9uLgorICAgICAgICAzLiBXZSBrZWVwIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8g
aW4gYSBGaXhlZFZlY3RvciBpbiBCYXNlbGluZUpJVENvZGUuIFdoaWxlIHdlIG5lZWQgdG8ga2Vl
cCBwb2ludGVyCisgICAgICAgICAgIGlkZW50aXR5IHdoaWxlIGNvbXBpbGluZyBCYXNlbGluZSBK
SVQsIGFmdGVyIHRoYXQsIHdlIG5vIGxvbmdlciBuZWVkIHRvIGtlZXAgdGhhdCBzaW5jZSB0aGVz
ZSBwb2ludGVycworICAgICAgICAgICBhcmUgbm90IGVtYmVkZGVkIGludG8gSklUIGNvZGUuIFRo
aXMgcGF0Y2ggYWxsb2NhdGVzIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8gdmlhIFNlZ21lbnRl
ZFZlY3RvciBkdXJpbmcKKyAgICAgICAgICAgY29tcGlsYXRpb24gdG8ga2VlcCBwb2ludGVyIGlk
ZW50aXR5LCBidXQgd2hlbiBmaW5hbGl6aW5nLCB3ZSBhbGxvY2F0ZSBGaXhlZFZlY3RvciBhbmQg
Y29weSB0aGUgYWJvdmUgY29udGVudAorICAgICAgICAgICB0byB0aGF0IHRvIGtlZXAgbWVtb3J5
IGFzIHNtYWxsIGFzIHBvc3NpYmxlLiBXZSBzaG91bGQgZG8gc2ltaWxhciB0aGluZyB0byBVbmxp
bmtlZENhbGxMaW5rSW5mbywgU3RydWN0dXJlU3R1YkluZm8gZXRjLgorICAgICAgICAgICBmb3Ig
YmFzZWxpbmUsIGJ1dCB0aGlzIHNob3VsZCBiZSBkb25lIGluIGEgc2VwYXJhdGUgcGF0Y2guCisK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OnNldHVwV2l0aFVubGlua2VkQmFzZWxpbmVDb2RlKToKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjphZGRPcHRpbWl6aW5nU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFk
ZFN0dWJJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAg
ICAgICAgKiBieXRlY29kZS9QdXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdGlhbGl6
ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGppdC9CYXNlbGluZUpJVENvZGUuaDoKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjphZGRVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpsaW5rKToKKyAgICAgICAgKiBqaXQvSklU
Lmg6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfaXRlcmF0b3Jfb3Blbik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9u
ZXh0KToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5lQ2FjaGVHZW5lcmF0b3Ip
OgorICAgICAgICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAg
ICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUQnlJZEdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRHZXRC
eUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJ
ZFdpdGhUaGlzR2VuZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgor
ICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6Cisg
ICAgICAgIChKU0M6OkpJVERlbEJ5VmFsR2VuZXJhdG9yOjpKSVREZWxCeVZhbEdlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OkpJVERlbEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToK
KyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAg
KEpTQzo6SklURGVsQnlJZEdlbmVyYXRvcjo6SklURGVsQnlJZEdlbmVyYXRvcik6CisgICAgICAg
IChKU0M6OkpJVERlbEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAo
SlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJVElu
QnlWYWxHZW5lcmF0b3I6OkpJVEluQnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRJ
bkJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5C
eVZhbEdlbmVyYXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRJbkJ5SWRHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJh
dG9yOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUSW5zdGFuY2VP
ZkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVEluc3RhbmNl
T2ZHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0
b3I6OkpJVEdldEJ5VmFsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeVZhbEdlbmVy
YXRvcjo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6SklU
UHV0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5VmFsR2VuZXJhdG9yOjpm
aW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6
SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUUHJpdmF0
ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6
SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6
OmdhcmJhZ2VTdHViSW5mbyk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmg6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAg
KiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVHZXRCeVZhbFNsb3dDYXNl
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc2V0X3ByaXZhdGVfYnJhbmQpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfY2hlY2tfcHJpdmF0ZV9icmFuZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9wcml2YXRlX25hbWUpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGVsX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0U2xvd19vcF9kZWxfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZGVsX2J5
X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZGVsX2J5X3ZhbCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZF93aXRoX3Ro
aXMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2luX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2lu
X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5fYnlfdmFsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0SGFzUHJpdmF0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9lbnVtZXJhdG9yX2dldF9ieV92YWwpOgorCiAyMDIxLTEwLTI4ICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGNhbGwgdHlwZSgpIG9uIFN0cnVj
dHVyZSwgaW5zdGVhZCBjYWxsIHR5cGUoKSBvbiBpdHMgdHlwZUluZm8oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4Mzc2ZTA5
N2EwYTUyODI5MzA2MjZjMDFiZjAwOTZmMzQxY2UwNTVlLi41MTY5MDk1MDAwZmM0M2ZkNDY4YzQ1
YzA5Y2IwMmFmMjRlNWZkODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTI5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQ2xlYW4gdXAg
QmFzZWxpbmUgU3RydWN0dXJlU3R1YkluZm8gbWFuYWdlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTEzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvU2VnbWVudGVkVmVjdG9yLmg6CisK
IDIwMjEtMTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENy
ZWF0ZSBjb25zdGFudHMgZm9yIGFsbCBzcGVjaWFsIGZyYW1lIG5hbWVzIHVzZWQgaW4gYW5jaG9y
IHRhcmdldCBhdHRyaWJ1dGUgdmFsdWVzIGFuZCBlbHNld2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNDQ0YTEwNTY3MTcyY2E5OTlmNTUz
MDY1MGIzYzk3OGYwM2JmZDc4Mi4uMTkwNTk3MGNhZWM4NmNkYzgyNTQ4OGRhNWQ0OGI0MGU1Yjhl
MGQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
QEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNl
bGluZUNvZGUoUmVmPEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgSklUQ29uc3RhbnRQb29sOjpU
eXBlOjpTdHJ1Y3R1cmVTdHViSW5mbzogewotICAgICAgICAgICAgICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8gPSAqc3RhdGljX2Nhc3Q8VW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbyo+KGVudHJ5LnBvaW50ZXIoKSk7CisgICAgICAgICAgICAgICAgVW5saW5r
ZWRTdHJ1Y3R1cmVTdHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyA9IGppdENvZGUtPm1fdW5saW5r
ZWRTdHViSW5mb3NbYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW50cnkucG9pbnRlcigpKV07CiAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gaml0RGF0YS5tX3N0
dWJJbmZvcy5hZGQodW5saW5rZWRTdHViSW5mby5hY2Nlc3NUeXBlLCBDb2RlT3JpZ2luKHVubGlu
a2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCkpOwogICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5p
bml0aWFsaXplRnJvbVVubGlua2VkU3RydWN0dXJlU3R1YkluZm8odGhpcywgdW5saW5rZWRTdHVi
SW5mbyk7CiAgICAgICAgICAgICAgICAgaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbFtpXSA9IHN0
dWJJbmZvOwpAQCAtMTcwNyw3ICsxNzA3LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmdldElDU3RhdHVz
TWFwKElDU3RhdHVzTWFwJiByZXN1bHQpCiB9CiAKICNpZiBFTkFCTEUoSklUKQotU3RydWN0dXJl
U3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4pCitTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRP
cHRpbWl6aW5nU3R1YkluZm8oQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiB7CiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgIHJl
dHVybiBlbnN1cmVKSVREYXRhKGxvY2tlcikubV9zdHViSW5mb3MuYWRkKGFjY2Vzc1R5cGUsIGNv
ZGVPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmlu
ZGV4IGEwZWI4OTUxNDdjZmY3ZWVmYTA3MzJjODRjZGRlZWZkODZhOTcwMTQuLjVhOTc1MjU4OWI0
NmIzYzljOTljNDc0MDRhYTE4ZjQyZDk0MWU1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTI4NCw3ICsyODQsNyBAQCBjbGFzcyBDb2RlQmxvY2sg
OiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZKSVREYXRh
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvZGVCbG9jaywgbV9qaXREYXRhKTsgfQogCi0g
ICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKEFjY2Vzc1R5cGUsIENvZGVPcmlnaW4p
OworICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRPcHRpbWl6aW5nU3R1YkluZm8oQWNjZXNzVHlw
ZSwgQ29kZU9yaWdpbik7CiAKICAgICAvLyBPKG4pIG9wZXJhdGlvbi4gVXNlIGdldElDU3RhdHVz
TWFwKCkgdW5sZXNzIHlvdSByZWFsbHkgb25seSBpbnRlbmQgdG8gZ2V0IG9uZSBzdHViIGluZm8u
CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRLaW5kLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0S2luZC5oCmluZGV4IGQ2ZTM1YmM0ZTg4ZjAwNzVh
MzMzNjliZmYxYzI3YTdjNjBmNjM2YTQuLjI2MGQwNzAwNmE3NDQzZjliMmJlNTRkMzdjNzk3YmMx
MDFiMWRmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRL
aW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEtpbmQuaApAQCAt
MjcsNiArMjcsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotZW51bSBjbGFzcyBQdXRLaW5kIHsg
RGlyZWN0LCBOb3REaXJlY3QsIERpcmVjdFByaXZhdGVGaWVsZERlZmluZSwgRGlyZWN0UHJpdmF0
ZUZpZWxkU2V0IH07CitlbnVtIGNsYXNzIFB1dEtpbmQgOiB1aW50OF90IHsgRGlyZWN0LCBOb3RE
aXJlY3QsIERpcmVjdFByaXZhdGVGaWVsZERlZmluZSwgRGlyZWN0UHJpdmF0ZUZpZWxkU2V0IH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKaW5kZXggZmQzNGJlY2NmZjJiMGU4YjY0NmRj
YzcwZTRjMmMzODhkZTU0NWNkYi4uYjFiZGIxMmM4MmEwZWYzZTBlZWIxZjBlNTg5MjZkZjAyMDA1
NmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwCkBAIC00NDEsNiArNDQxLDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5m
bzo6aW5pdGlhbGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKENvZGVCbG9jayosIFVu
bGkKICAgICBjYWxsU2l0ZUluZGV4ID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KHVubGlu
a2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpOwogICAgIGNvZGVPcmlnaW4gPSBD
b2RlT3JpZ2luKHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleCk7CiAgICAgbV9jb2RlUHRy
ID0gc2xvd1BhdGhTdGFydExvY2F0aW9uOworICAgIHByb3BlcnR5SXNJbnQzMiA9IHVubGlua2Vk
U3R1YkluZm8ucHJvcGVydHlJc0ludDMyOwogCiAgICAgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVy
U2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKTsKICAgICBpZiAoYWNjZXNzVHlwZSA9PSBB
Y2Nlc3NUeXBlOjpHZXRCeUlkICYmIHVubGlua2VkU3R1YkluZm8uYnl0ZWNvZGVJbmRleC5jaGVj
a3BvaW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKaW5kZXggMzM2ODViYzEzNzliZTI1Y2QyYThhMWM1ZmU5MDdkMjg5YTMz
MzQxMC4uOTk2ZjU5YWI4NTU5ZjhmZGQ1ZTlmNmY2MDgzNmNlMzEwMzdlYzA1NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAg
LTQ2NSw2ICs0NjUsNyBAQCBzdHJ1Y3QgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAg
UHV0S2luZCBwdXRLaW5kOwogICAgIFByaXZhdGVGaWVsZFB1dEtpbmQgcHJpdmF0ZUZpZWxkUHV0
S2luZCB7IFByaXZhdGVGaWVsZFB1dEtpbmQ6Om5vbmUoKSB9OwogICAgIEVDTUFNb2RlIGVjbWFN
b2RlIHsgRUNNQU1vZGU6OnNsb3BweSgpIH07CisgICAgYm9vbCBwcm9wZXJ0eUlzSW50MzIgeyBm
YWxzZSB9OwogICAgIEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleDsKICAgICBDb2RlTG9jYXRp
b25MYWJlbDxKSVRTdHViUm91dGluZVB0clRhZz4gc3RhcnQ7IC8vIFRoaXMgaXMgZWl0aGVyIHRo
ZSBzdGFydCBvZiB0aGUgaW5saW5lIElDIGZvciAqYnlJZCBjYWNoZXMuIG9yIHRoZSBsb2NhdGlv
biBvZiBwYXRjaGFibGUganVtcCBmb3IgJ2luc3RhbmNlb2YnIGNhY2hlcy4KICAgICBDb2RlTG9j
YXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBkb25lTG9jYXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklUQ29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9CYXNlbGluZUpJVENvZGUuaAppbmRleCAxNWU5NjdjMTBlZmM0YjY3MTQ0
Y2ViYmZjNjc1MDJiYmY2NmNiZDYyLi5mNjU3YzRiYTBlZjYyYmVmMGIyZjQ1ZDc2OWI1NDM1ZDAx
YmRkYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklU
Q29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQmFzZWxpbmVKSVRDb2RlLmgK
QEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgQmFzZWxpbmVKSVRDb2RlIDogcHVibGljIERpcmVjdEpJ
VENvZGUsIHB1YmxpYyBNYXRoSUNIb2xkZXIgewogCiAgICAgQmFnPFVubGlua2VkQ2FsbExpbmtJ
bmZvPiBtX3VubGlua2VkQ2FsbHM7CiAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9ldmFsQ2FsbExp
bmtJbmZvczsKLSAgICBCYWc8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbz4gbV91bmxpbmtlZFN0
dWJJbmZvczsKKyAgICBGaXhlZFZlY3RvcjxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvPiBtX3Vu
bGlua2VkU3R1YkluZm9zOwogICAgIEZpeGVkVmVjdG9yPFNpbXBsZUp1bXBUYWJsZT4gbV9zd2l0
Y2hKdW1wVGFibGVzOwogICAgIEZpeGVkVmVjdG9yPFN0cmluZ0p1bXBUYWJsZT4gbV9zdHJpbmdT
d2l0Y2hKdW1wVGFibGVzOwogICAgIEpJVENvZGVNYXAgbV9qaXRDb2RlTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCmluZGV4IGIxNzljODUxNTBkZDljN2QzOTllMGNjNzNhYTlmZTY0NGJj
ODEwMDcuLmRiYzc4NGJjNmQ1NWM3ZmQwOTFiOGI2ZGE2NDIxOGI3MTNmM2U3ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTkzLDYgKzkzLDE0IEBAIEpJVENvbnN0YW50UG9vbDo6
Q29uc3RhbnQgSklUOjphZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGUgdHlw
ZSwgdm9pCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RkOjp0dXBsZTxVbmxpbmtlZFN0cnVj
dHVyZVN0dWJJbmZvKiwgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudD4gSklUOjphZGRVbmxpbmtl
ZFN0cnVjdHVyZVN0dWJJbmZvKCkKK3sKKyAgICB2b2lkKiB1bmxpbmtlZFN0dWJJbmZvSW5kZXgg
PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV91bmxpbmtlZFN0
dWJJbmZvcy5zaXplKCkpKTsKKyAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
byA9ICZtX3VubGlua2VkU3R1YkluZm9zLmFsbG9jKCk7CisgICAgSklUQ29uc3RhbnRQb29sOjpD
b25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29s
OjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgdW5saW5rZWRTdHViSW5mb0luZGV4KTsKKyAgICBy
ZXR1cm4gc3RkOjp0dXBsZSB7IHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IH07Cit9CisKICNpZiBF
TkFCTEUoREZHX0pJVCkKIHZvaWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiB7
CkBAIC05OTMsNyArMTAwMSw5IEBAIHZvaWQgSklUOjpsaW5rKCkKIAogICAgIG1faml0Q29kZS0+
bV91bmxpbmtlZENhbGxzID0gV1RGTW92ZShtX3VubGlua2VkQ2FsbHMpOwogICAgIG1faml0Q29k
ZS0+bV9ldmFsQ2FsbExpbmtJbmZvcyA9IFdURk1vdmUobV9ldmFsQ2FsbExpbmtJbmZvcyk7Ci0g
ICAgbV9qaXRDb2RlLT5tX3VubGlua2VkU3R1YkluZm9zID0gV1RGTW92ZShtX3VubGlua2VkU3R1
YkluZm9zKTsKKyAgICBtX2ppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3MgPSBGaXhlZFZlY3Rv
cjxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvPihtX3VubGlua2VkU3R1YkluZm9zLnNpemUoKSk7
CisgICAgaWYgKG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcy5zaXplKCkpCisgICAgICAg
IHN0ZDo6Y29weShtX3VubGlua2VkU3R1YkluZm9zLmJlZ2luKCksIG1fdW5saW5rZWRTdHViSW5m
b3MuZW5kKCksIG1faml0Q29kZS0+bV91bmxpbmtlZFN0dWJJbmZvcy5iZWdpbigpKTsKICAgICBt
X2ppdENvZGUtPm1fc3dpdGNoSnVtcFRhYmxlcyA9IFdURk1vdmUobV9zd2l0Y2hKdW1wVGFibGVz
KTsKICAgICBtX2ppdENvZGUtPm1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcyA9IFdURk1vdmUobV9z
dHJpbmdTd2l0Y2hKdW1wVGFibGVzKTsKICAgICBtX2ppdENvZGUtPm1faml0Q29kZU1hcCA9IGpp
dENvZGVNYXBCdWlsZGVyLmZpbmFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCA0
NjlkM2UwODI2OTc3YWQyM2ZmMTExZDVhNmVmZDhlMWVjYjAwOGVlLi42NTA5NDZkMWU1N2NhOWQ1
YTY0MWQ5NzU3ZGYzMzMyMWM5N2JmZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTk1
Nyw2ICs5NTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCByZXNldFNQKCk7CiAK
ICAgICAgICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBhZGRUb0NvbnN0YW50UG9vbChKSVRD
b25zdGFudFBvb2w6OlR5cGUsIHZvaWQqIHBheWxvYWQgPSBudWxscHRyKTsKKyAgICAgICAgc3Rk
Ojp0dXBsZTxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiwgSklUQ29uc3RhbnRQb29sOjpDb25z
dGFudD4gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogCiAgICAgICAgIEludGVycHJl
dGVyKiBtX2ludGVycHJldGVyOwogCkBAIC0xMDI5LDcgKzEwMzAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBtX2dsb2JhbE9iamVjdENvbnN0
YW50IHsgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIH07CiAgICAgICAgIEJh
ZzxVbmxpbmtlZENhbGxMaW5rSW5mbz4gbV91bmxpbmtlZENhbGxzOwogICAgICAgICBCYWc8Q2Fs
bExpbmtJbmZvPiBtX2V2YWxDYWxsTGlua0luZm9zOwotICAgICAgICBCYWc8VW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbz4gbV91bmxpbmtlZFN0dWJJbmZvczsKKyAgICAgICAgU2VnbWVudGVkVmVj
dG9yPFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8+IG1fdW5saW5rZWRTdHViSW5mb3M7CiAgICAg
ICAgIEZpeGVkVmVjdG9yPFNpbXBsZUp1bXBUYWJsZT4gbV9zd2l0Y2hKdW1wVGFibGVzOwogICAg
ICAgICBGaXhlZFZlY3RvcjxTdHJpbmdKdW1wVGFibGU+IG1fc3RyaW5nU3dpdGNoSnVtcFRhYmxl
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKaW5kZXggMzQ3ZTYwZTFmZDk5
ZmM4Y2IwMmEzODYxOTNjNWVhMzZkMGNmNjVmNy4uNTdkYzY2MTkwMDg1NGQ2NTAzMGNmMjVjNWE4
NDI5YjFkNjUwNmQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCkBAIC00
OTAsMTAgKzQ5MCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX29wZW4oY29uc3QgSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGlu
ZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2Rl
SW5kZXgobV9ieXRlY29kZUluZGV4Lm9mZnNldCgpKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJv
bUltbW9ydGFsSWRlbnRpZmllcihpZGVudC0+aW1wbCgpKSwgYmFzZUpTUiwgcmVzdWx0SlNSLCBz
dHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0
byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJ
bmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkOwog
ICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENv
bnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJ
VENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBn
ZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAg
Z2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC02MDEsMTAgKzYwMCw5IEBA
IHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX25leHQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3Ry
dWN0aW9uKQogICAgICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KG1fYnl0
ZWNvZGVJbmRleC5vZmZzZXQoKSkpLCBwcmVzZXJ2ZWRSZWdzLAogICAgICAgICAgICAgQ2FjaGVh
YmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUltbW9ydGFsSWRlbnRpZmllcih2bSgpLnByb3BlcnR5
TmFtZXMtPmRvbmUuaW1wbCgpKSwgcmV0dXJuVmFsdWVKU1IsIGRvbmVKU1IsIHN0dWJJbmZvR1BS
LCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKIAotICAgICAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgICAgIGF1dG8g
WyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5m
bygpOwogICAgICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkdldEJ5SWQ7
CiAgICAgICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAg
ICAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0
YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5m
byk7CiAgICAgICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1Yklu
Zm9JbmRleDsKICAgICAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBA
IC02MzQsMTAgKzYzMiw5IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX25leHQoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6
QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChC
eXRlY29kZUluZGV4KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkpLCBSZWdpc3RlclNldDo6c3R1
YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVy
OjpjcmVhdGVGcm9tSW1tb3J0YWxJZGVudGlmaWVyKHZtKCkucHJvcGVydHlOYW1lcy0+dmFsdWUu
aW1wbCgpKSwgYmFzZUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0
QnlJZCk7CiAKLSAgICAgICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBt
X3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAgICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJ
bmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICAgICAgc3R1
YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkOwogICAgICAgICBzdHViSW5m
by0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICAgICAgSklUQ29uc3RhbnRQ
b29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3Rh
bnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgICAgICBnZW4u
bV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgICAg
IGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBiZGE1
MWE0OGQ4MDc0ZDRmNmQyYmMzYTE5YTBjNzg1OWZmMTcwM2E2Li5hOTFhNjcxNmFlZDdiNzNiZmJj
NjBhMzBlMzdhOWViY2ViYmVhZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtMzksMjYgKzM5LDI0IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgU3RydWN0dXJlU3R1YkluZm8qIGdhcmJhZ2VTdHVi
SW5mbygpCi17Ci0gICAgc3RhdGljIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG5ldyBT
dHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NUeXBlOjpHZXRCeUlkLCBDb2RlT3JpZ2luKCkpOwotICAg
IHJldHVybiBzdHViSW5mbzsKLX0KLQogSklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6OkpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yKAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5
cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwgQWNjZXNz
VHlwZSBhY2Nlc3NUeXBlLAogICAgIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzKQog
ICAgIDogbV9qaXRUeXBlKGppdFR5cGUpCiB7Ci0gICAgbV9zdHViSW5mbyA9IGNvZGVCbG9jayA/
IGNvZGVCbG9jay0+YWRkU3R1YkluZm8oYWNjZXNzVHlwZSwgY29kZU9yaWdpbikgOiBnYXJiYWdl
U3R1YkluZm8oKTsKLSAgICBtX3N0dWJJbmZvLT5jYWxsU2l0ZUluZGV4ID0gY2FsbFNpdGU7Ci0K
LSAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzID0gdXNlZFJlZ2lzdGVyczsKKyAgICBpZiAo
SklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKG1faml0VHlwZSkpIHsKKyAgICAgICAgQVNTRVJUKGNv
ZGVCbG9jayk7CisgICAgICAgIG1fc3R1YkluZm8gPSBjb2RlQmxvY2stPmFkZE9wdGltaXppbmdT
dHViSW5mbyhhY2Nlc3NUeXBlLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgbV9zdHViSW5mby0+Y2Fs
bFNpdGVJbmRleCA9IGNhbGxTaXRlOworICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJz
ID0gdXNlZFJlZ2lzdGVyczsKKyAgICB9IGVsc2UKKyAgICAgICAgQVNTRVJUKCFjb2RlQmxvY2sp
OwogfQogCiB2b2lkIEpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpmaW5hbGl6ZSgKICAgICBMaW5r
QnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgsIENvZGVMb2NhdGlvbkxhYmVs
PEpJVFN0dWJSb3V0aW5lUHRyVGFnPiBzdGFydCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7
CiAgICAgbV9zdHViSW5mby0+c3RhcnQgPSBzdGFydDsKICAgICBtX3N0dWJJbmZvLT5kb25lTG9j
YXRpb24gPSBmYXN0UGF0aC5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KG1fZG9uZSk7CiAK
QEAgLTgzLDE5ICs4MSwyMiBAQCBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAog
ICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQogewotICAgIG1fc3R1Yklu
Zm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQ
UiA9IHZhbHVlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnRoaXNHUFIgPSBJ
bnZhbGlkR1BSUmVnOwotICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQ
UjsKKyAgICBpZiAobV9zdHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0g
YmFzZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gdmFsdWUu
cGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnRoaXNHUFIgPSBJbnZhbGlk
R1BSUmVnOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7
CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFz
ZS50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigp
OwotICAgIG1fc3R1YkluZm8tPnYudGhpc1RhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAg
IG1fc3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJ
bmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52
LnRoaXNUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJ
VEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVy
JiBzbG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3I6OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBhdGgubG9jYXRp
b25PZjxKSVRTdHViUm91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChKSVRDb2RlOjp1
c2VEYXRhSUMobV9qaXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9z
dHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMTI2LDYgKzEyNyw3IEBAIEpJVEdl
dEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IoCiAKIHZvaWQgSklUR2V0QnlJZEdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFT
U0VSVChtX3N0dWJJbmZvKTsKICAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBtX2lzTGVuZ3Ro
QWNjZXNzID8gSW5saW5lQWNjZXNzOjpzaXplRm9yTGVuZ3RoQWNjZXNzKCkgOiBJbmxpbmVBY2Nl
c3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKIH0KIApAQCAtMTY3LDE1ICsxNjksMTcgQEAg
SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3Io
CiAgICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgaml0VHlwZSwgY29kZU9yaWdpbiwg
Y2FsbFNpdGUsIEFjY2Vzc1R5cGU6OkdldEJ5SWRXaXRoVGhpcywgdXNlZFJlZ2lzdGVycywgYmFz
ZSwgdmFsdWUsIHN0dWJJbmZvR1BSKQogewogICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNSZWdzLnBh
eWxvYWRHUFIoKSAhPSB0aGlzUmVncy50YWdHUFIoKSk7Ci0KLSAgICBtX3N0dWJJbmZvLT5yZWdz
LnRoaXNHUFIgPSB0aGlzUmVncy5wYXlsb2FkR1BSKCk7CisgICAgaWYgKG1fc3R1YkluZm8pIHsK
KyAgICAgICAgbV9zdHViSW5mby0+cmVncy50aGlzR1BSID0gdGhpc1JlZ3MucGF5bG9hZEdQUigp
OwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5mby0+di50aGlzVGFnR1BSID0g
dGhpc1JlZ3MudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYudGhpc1RhZ0dQUiA9IHRo
aXNSZWdzLnRhZ0dQUigpOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJVEdldEJ5SWRXaXRo
VGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogewor
ICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxp
bmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKIH0KIApAQCAtMjAzLDcgKzIwNyw4
IEBAIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0b3IoCiAgICAgICAgICwg
bV9lY21hTW9kZShlY21hTW9kZSkKICAgICAgICAgLCBtX3B1dEtpbmQocHV0S2luZCkKIHsKLSAg
ICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOworICAgIGlmIChtX3N0
dWJJbmZvKQorICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gp
OwogfQogCiB2b2lkIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNG
YXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikK
QEAgLTIzNCw2ICsyMzksNyBAQCB2b2lkIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFz
ZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YgogCiB2b2lkIEpJVFB1
dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIHsK
KyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5s
aW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlSZXBsYWNlKCkpOwogfQogCkBAIC0yNjMsMjMgKzI2
OSwyOCBAQCBWX0pJVE9wZXJhdGlvbl9HU3NpSkpDIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OnNsb3dQ
YXRoRnVuY3Rpb24oKQogSklURGVsQnlWYWxHZW5lcmF0b3I6OkpJVERlbEJ5VmFsR2VuZXJhdG9y
KENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNl
ZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFs
dWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCkKICAgICA6
IEJhc2UoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBBY2Nl
c3NUeXBlOjpEZWxldGVCeVZhbCwgdXNlZFJlZ2lzdGVycykKIHsKLSAgICBtX3N0dWJJbmZvLT5o
YXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsKICAgICBBU1NFUlQoYmFzZS5wYXlsb2FkR1BS
KCkgIT0gcmVzdWx0LnBheWxvYWRHUFIoKSk7Ci0gICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJh
c2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlHUFIgPSBwcm9w
ZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5
bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsK
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEFTU0VSVChiYXNlLnRhZ0dQUigpICE9IHJlc3Vs
dC50YWdHUFIoKSk7Ci0gICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7
Ci0gICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSByZXN1bHQudGFnR1BSKCk7Ci0gICAgbV9z
dHViSW5mby0+di5wcm9wZXJ0eVRhZ0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOwogI2VuZGlmCi0g
ICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycy5jbGVhcihzY3JhdGNoKTsKKyAgICBpZiAobV9z
dHViSW5mbykgeworICAgICAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBm
YWxzZTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwor
ICAgICAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5bG9hZEdQ
UigpOworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3VsdC5wYXlsb2FkR1BSKCk7
CisgICAgICAgIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIgPSBzdHViSW5mb0dQUjsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50
YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSByZXN1bHQudGFnR1BS
KCk7CisgICAgICAgIG1fc3R1YkluZm8tPnYucHJvcGVydHlUYWdHUFIgPSBwcm9wZXJ0eS50YWdH
UFIoKTsKKyNlbmRpZgorICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNj
cmF0Y2gpOworICAgIH0KIH0KIAogdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsK
ICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyht
X2ppdFR5cGUpKSB7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CkBAIC0yOTEsNiArMzAy
LDcgQEAgdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYgaml0KQogCiB2b2lkIEpJVERlbEJ5VmFsR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5r
QnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiB7CisgICAgQVNTRVJUKG1f
c3R1YkluZm8pOwogICAgIEJhc2U6OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBh
dGgubG9jYXRpb25PZjxKSVRTdHViUm91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2Rl
UHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMjk5LDIzICszMTEs
MjggQEAgdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZlciYgZmFz
dFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogSklURGVsQnlJZEdlbmVyYXRvcjo6SklURGVs
QnlJZEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRUeXBlLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwgY29uc3QgUmVn
aXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZpZXIsIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2Ny
YXRjaCkKICAgICA6IEJhc2UoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0
ZUluZGV4LCBBY2Nlc3NUeXBlOjpEZWxldGVCeUlELCB1c2VkUmVnaXN0ZXJzKQogewotICAgIG1f
c3R1YkluZm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IHRydWU7CiAgICAgQVNTRVJUKGJhc2Uu
cGF5bG9hZEdQUigpICE9IHJlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgIG1fc3R1YkluZm8tPmJh
c2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5
R1BSID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IHJlc3VsdC5w
YXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BS
OwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgQVNTRVJUKGJhc2UudGFnR1BSKCkgIT0gcmVz
dWx0LnRhZ0dQUigpKTsKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIo
KTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKLSAgICBt
X3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gSW52YWxpZEdQUlJlZzsKICNlbmRpZgotICAg
IG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaCk7CisgICAgaWYgKG1fc3R1
YkluZm8pIHsKKyAgICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gdHJ1
ZTsKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOworICAg
ICAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAg
ICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOworICAgICAgICBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7Cisg
ICAgICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gcmVzdWx0LnRhZ0dQUigpOworICAgICAg
ICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyNlbmRpZgor
ICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOworICAgIH0K
IH0KIAogdm9pZCBKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNz
ZW1ibGVyJiBqaXQpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBq
aXQubGFiZWwoKTsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKICAg
ICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKQEAgLTMyNyw2ICszNDQsNyBAQCB2b2lkIEpJVERl
bEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIAog
dm9pZCBKSVREZWxCeUlkR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwg
TGlua0J1ZmZlciYgc2xvd1BhdGgpCiB7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIEJh
c2U6OmZpbmFsaXplKGZhc3RQYXRoLCBzbG93UGF0aCwgZmFzdFBhdGgubG9jYXRpb25PZjxKSVRT
dHViUm91dGluZVB0clRhZz4obV9zdGFydCkpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMo
bV9qaXRUeXBlKSkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9zdHViSW5mby0+
c2xvd1BhdGhTdGFydExvY2F0aW9uOwpAQCAtMzM1LDIxICszNTMsMjMgQEAgdm9pZCBKSVREZWxC
eUlkR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYg
c2xvd1BhdGgpCiBKSVRJbkJ5VmFsR2VuZXJhdG9yOjpKSVRJbkJ5VmFsR2VuZXJhdG9yKENvZGVC
bG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
Q2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVn
cyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIpCiAgICAg
OiBCYXNlKGNvZGVCbG9jaywgaml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgYWNj
ZXNzVHlwZSwgdXNlZFJlZ2lzdGVycykKIHsKLSAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElk
ZW50aWZpZXIgPSBmYWxzZTsKLQotICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxv
YWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5
bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gcmVzdWx0LnBheWxvYWRHUFIo
KTsKLSAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisgICAgaWYg
KG1fc3R1YkluZm8pIHsKKyAgICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVy
ID0gZmFsc2U7CisgICAgICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIo
KTsKKyAgICAgICAgbV9zdHViSW5mby0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxv
YWRHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQ
UigpOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAj
aWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50
YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsK
LSAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7Cisg
ICAgICAgIG1fc3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBt
X3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHVi
SW5mby0+di5wcm9wZXJ0eVRhZ0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOwogI2VuZGlmCisgICAg
fQogfQogCiB2b2lkIEpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImIGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkgewog
ICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9zdHViSW5mbyks
IG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwpAQCAtMzYzLDYgKzM4Myw3IEBAIHZvaWQgSklU
SW5CeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoCiAgICAgTGlua0J1ZmZlciYgZmFzdFBhdGgsIExp
bmtCdWZmZXImIHNsb3dQYXRoKQogewogICAgIEFTU0VSVChtX3N0YXJ0LmlzU2V0KCkpOworICAg
IEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1Bh
dGgsIGZhc3RQYXRoLmxvY2F0aW9uT2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsK
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1Yklu
Zm8tPm1fY29kZVB0ciA9IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTM4
MCw2ICs0MDEsNyBAQCBKSVRJbkJ5SWRHZW5lcmF0b3I6OkpJVEluQnlJZEdlbmVyYXRvcigKIAog
dm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
IGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgZ2VuZXJhdGVGYXN0Q29tbW9u
KGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CiB9CiAKQEAgLTQx
NSwyOSArNDM3LDMxIEBAIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5l
cmF0b3IoCiAgICAgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIGJvb2wgcHJvdG90
eXBlSXNLbm93bk9iamVjdCkKICAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9j
aywgaml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZTo6SW5zdGFu
Y2VPZiwgdXNlZFJlZ2lzdGVycykKIHsKLSAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gdmFsdWU7
Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQ7Ci0gICAgbV9zdHViSW5mby0+cmVn
cy5wcm90b3R5cGVHUFIgPSBwcm90b3R5cGU7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQ
UiA9IHN0dWJJbmZvR1BSOworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1Yklu
Zm8tPmJhc2VHUFIgPSB2YWx1ZTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1
bHQ7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvdG90eXBlR1BSID0gcHJvdG90eXBlOwor
ICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gSW52YWxpZEdQUlJl
ZzsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgbV9z
dHViSW5mby0+di50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9zdHViSW5m
by0+YmFzZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVl
VGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9zdHViSW5mby0+di50aGlzVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKICNlbmRpZgogCi0gICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVy
cy5jbGVhcihyZXN1bHQpOwotICAgIGlmIChzY3JhdGNoMSAhPSBJbnZhbGlkR1BSUmVnKQotICAg
ICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gxKTsKLSAgICBpZiAo
c2NyYXRjaDIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgbV9zdHViSW5mby0+dXNlZFJlZ2lz
dGVycy5jbGVhcihzY3JhdGNoMik7Ci0KLSAgICBtX3N0dWJJbmZvLT5wcm90b3R5cGVJc0tub3du
T2JqZWN0ID0gcHJvdG90eXBlSXNLbm93bk9iamVjdDsKKyAgICAgICAgbV9zdHViSW5mby0+dXNl
ZFJlZ2lzdGVycy5jbGVhcihyZXN1bHQpOworICAgICAgICBpZiAoc2NyYXRjaDEgIT0gSW52YWxp
ZEdQUlJlZykKKyAgICAgICAgICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2Ny
YXRjaDEpOworICAgICAgICBpZiAoc2NyYXRjaDIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAg
ICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaDIpOwogCi0gICAgbV9z
dHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7CisgICAgICAgIG1fc3R1Yklu
Zm8tPnByb3RvdHlwZUlzS25vd25PYmplY3QgPSBwcm90b3R5cGVJc0tub3duT2JqZWN0OworICAg
ICAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsKKyAgICB9CiB9
CiAKIHZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0g
aml0LmxhYmVsKCk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CiAg
ICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwg
bV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CkBAIC00NDksNiArNDczLDcgQEAgdm9pZCBKSVRJ
bnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQp
CiAKIHZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZlciYgZmFz
dFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsK
ICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1BhdGgsIGZhc3RQYXRoLmxvY2F0aW9u
T2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsKICAgICBpZiAoSklUQ29kZTo6dXNl
RGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0ciA9IG1fc3R1
YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTQ1OSwyMSArNDg0LDIzIEBAIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9j
aywgSklUVHlwZSBqaXRUeXBlCiAgICAgLCBtX2Jhc2UoYmFzZSkKICAgICAsIG1fcmVzdWx0KHJl
c3VsdCkKIHsKLSAgICBtX3N0dWJJbmZvLT5oYXNDb25zdGFudElkZW50aWZpZXIgPSBmYWxzZTsK
LQotICAgIG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT5yZWdzLnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5bG9hZEdQUigpOwotICAgIG1f
c3R1YkluZm8tPnZhbHVlR1BSID0gcmVzdWx0LnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZv
LT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CisgICAgaWYgKG1fc3R1YkluZm8pIHsKKyAg
ICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7CisgICAgICAg
IG1fc3R1YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgbV9zdHVi
SW5mby0+cmVncy5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxvYWRHUFIoKTsKKyAgICAgICAg
bV9zdHViSW5mby0+dmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0
dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1YkluZm9HUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKLSAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52
LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8t
PmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZVRh
Z0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+di5wcm9wZXJ0eVRh
Z0dQUiA9IHByb3BlcnR5LnRhZ0dQUigpOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiB7
CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKICAg
ICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0
dWJJbmZvR1BSKTsKQEAgLTQ4NSw2ICs1MTIsNyBAQCB2b2lkIEpJVEdldEJ5VmFsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCiAKIHZvaWQgSklUR2V0QnlW
YWxHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBz
bG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgQmFzZTo6ZmluYWxpemUo
ZmFzdFBhdGgsIHNsb3dQYXRoLCBmYXN0UGF0aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRy
VGFnPihtX3N0YXJ0KSk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQog
ICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQdHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0
TG9jYXRpb247CkBAIC00OTUsMjIgKzUyMywyNCBAQCBKSVRQdXRCeVZhbEdlbmVyYXRvcjo6SklU
UHV0QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5cGUgaml0VHlwZQog
ICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQogewotICAgIG1fc3R1Yklu
Zm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IGZhbHNlOwotCi0gICAgbV9zdHViSW5mby0+YmFz
ZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlH
UFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVHUFIgPSB2
YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJ
bmZvR1BSOwotICAgIG1fc3R1YkluZm8tPm1fYXJyYXlQcm9maWxlR1BSID0gYXJyYXlQcm9maWxl
R1BSOworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0
YW50SWRlbnRpZmllciA9IGZhbHNlOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gYmFz
ZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MucHJvcGVydHlHUFIgPSBw
cm9wZXJ0eS5wYXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gdmFs
dWUucGF5bG9hZEdQUigpOworICAgICAgICBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSID0gc3R1
YkluZm9HUFI7CisgICAgICAgIG1fc3R1YkluZm8tPm1fYXJyYXlQcm9maWxlR1BSID0gYXJyYXlQ
cm9maWxlR1BSOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5mby0+YmFzZVRh
Z0dQUiA9IGJhc2UudGFnR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+dmFsdWVUYWdHUFIgPSB2YWx1
ZS50YWdHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHku
dGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigp
OworICAgICAgICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOworICAg
ICAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSID0gcHJvcGVydHkudGFnR1BSKCk7CiAj
ZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIHsKKyAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAg
ICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9q
aXRUeXBlKSkgewogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
bV9zdHViSW5mbyksIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwpAQCAtNTIyLDYgKzU1Miw3
IEBAIHZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImIGppdCkKIAogdm9pZCBKSVRQdXRCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1
ZmZlciYgZmFzdFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogeworICAgIEFTU0VSVChtX3N0
dWJJbmZvKTsKICAgICBCYXNlOjpmaW5hbGl6ZShmYXN0UGF0aCwgc2xvd1BhdGgsIGZhc3RQYXRo
LmxvY2F0aW9uT2Y8SklUU3R1YlJvdXRpbmVQdHJUYWc+KG1fc3RhcnQpKTsKICAgICBpZiAoSklU
Q29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpCiAgICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0
ciA9IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKQEAgLTUzMSwyMSArNTYyLDIz
IEBAIEpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6SklUUHJpdmF0ZUJyYW5kQWNjZXNz
R2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsCiAgICAgOiBCYXNlKGNvZGVCbG9jaywgaml0VHlw
ZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgYWNjZXNzVHlwZSwgdXNlZFJlZ2lzdGVycykK
IHsKICAgICBBU1NFUlQoYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBlOjpDaGVja1ByaXZhdGVCcmFu
ZCB8fCBhY2Nlc3NUeXBlID09IEFjY2Vzc1R5cGU6OlNldFByaXZhdGVCcmFuZCk7Ci0gICAgbV9z
dHViSW5mby0+aGFzQ29uc3RhbnRJZGVudGlmaWVyID0gZmFsc2U7Ci0KLSAgICBtX3N0dWJJbmZv
LT5iYXNlR1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+cmVncy5icmFu
ZEdQUiA9IGJyYW5kLnBheWxvYWRHUFIoKTsKLSAgICBtX3N0dWJJbmZvLT52YWx1ZUdQUiA9IElu
dmFsaWRHUFJSZWc7Ci0gICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BS
OworICAgIGlmIChtX3N0dWJJbmZvKSB7CisgICAgICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0YW50
SWRlbnRpZmllciA9IGZhbHNlOworICAgICAgICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gYmFzZS5w
YXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnJlZ3MuYnJhbmRHUFIgPSBicmFuZC5w
YXlsb2FkR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gSW52YWxpZEdQUlJl
ZzsKKyAgICAgICAgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiA9IHN0dWJJbmZvR1BSOwogI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFn
R1BSKCk7Ci0gICAgbV9zdHViSW5mby0+di5icmFuZFRhZ0dQUiA9IGJyYW5kLnRhZ0dQUigpOwot
ICAgIG1fc3R1YkluZm8tPnZhbHVlVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgbV9z
dHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7CisgICAgICAgIG1fc3R1YkluZm8t
PnYuYnJhbmRUYWdHUFIgPSBicmFuZC50YWdHUFIoKTsKKyAgICAgICAgbV9zdHViSW5mby0+dmFs
dWVUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCisgICAgfQogfQogCiB2b2lkIEpJVFBy
aXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxl
ciYgaml0KQogeworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0Lmxh
YmVsKCk7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CiAgICAgICAg
IGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHVi
SW5mby0+bV9zdHViSW5mb0dQUik7CkBAIC01NTcsNiArNTkwLDcgQEAgdm9pZCBKSVRQcml2YXRl
QnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGpp
dCkKIAogdm9pZCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtC
dWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKIHsKKyAgICBBU1NFUlQobV9z
dHViSW5mbyk7CiAgICAgQmFzZTo6ZmluYWxpemUoZmFzdFBhdGgsIHNsb3dQYXRoLCBmYXN0UGF0
aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihtX3N0YXJ0KSk7CiAgICAgaWYgKEpJ
VENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKQogICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQ
dHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggZWJkZTQy
NGNhNmQ0YWQ2N2ViZjk0OTYxNzdiMGVmZWM3ZjY4ZGYyYy4uNzE2ZDAyNmM5Yzg4ODA2NmU3YTY3
MjU4YjZmYWViYWRmYzFkNzhiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApAQCAtMjYzLDcgKzI2Myw3IEBAIGNsYXNzIEpJ
VElubGluZUNhY2hlR2VuZXJhdG9yIHsKIAogcHJvdGVjdGVkOgogICAgIEpJVFR5cGUgbV9qaXRU
eXBlOwotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBtX3N0dWJJbmZvOworICAgIFN0cnVjdHVyZVN0
dWJJbmZvKiBtX3N0dWJJbmZvIHsgbnVsbHB0ciB9OwogCiBwdWJsaWM6CiAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIG1fc3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcAppbmRleCA4ZDU1YzFjNmJlYzE1NWUyZmI5MjlkMDZlN2MwODE3MGMzYzA1NWRlLi4wOTdk
ZDk3MTVlZWNiNDJmNGIyMjY5YzRmMzg4MzkxMWRkNTI5ZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTE3NywxMCArMTc3LDkgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfaW5zdGFuY2VvZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgICAgICBzdHViSW5mb0dQUiwKICAgICAgICAgQmFzZWxpbmVJbnN0YW5jZW9mUmVnaXN0ZXJz
OjpzY3JhdGNoMSwgQmFzZWxpbmVJbnN0YW5jZW9mUmVnaXN0ZXJzOjpzY3JhdGNoMik7CiAKLSAg
ICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5m
b3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxp
bmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nl
c3NUeXBlOjpJbnN0YW5jZU9mOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRl
Y29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9
IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1Yklu
Zm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9
IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXgg
YjRlODBlNWY2ZDVhNDk4MzcyMTBhN2JkZDVjNjY4MTk1NDhlMzNmNS4uMDU4MTkzYmY5MjM4NDhj
ZDU2NGExNGViN2ZjOGQwZjUyZTRiYjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMTc1LDEwICsxNzUsOSBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9pbnN0YW5jZW9mKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgICAgIHN0dWJJbmZvR1BSLAogICAgICAgICBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIpOwog
Ci0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0g
QWNjZXNzVHlwZTo6SW5zdGFuY2VPZjsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1f
Ynl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5k
ZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0
dWJJbmZvLCBzdHViSW5mbyk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5k
ZXggPSBzdHViSW5mb0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5m
bzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cAppbmRleCAzN2M5MmEyOGMzZjdmYjVhZDE0NzM3NGJlMzIxZTNkMGVhOTEwYzYwLi42YTM5MWUz
ZDU5M2U2N2U4ZmI3N2ExOWMzMmQzOGU3OGZkNGYwOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtNzUsMTMgKzc1LDExIEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwg
QWNjZXNzVHlwZTo6R2V0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKICAgICAgICAgICAgIGJhc2VKU1IsIHByb3BlcnR5SlNSLCByZXN1bHRKU1IsIHN0dWJJ
bmZvR1BSKTsKIAotICAgICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQot
ICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Ci0KLSAg
ICAgICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9
IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICAgICAgc3R1YkluZm8tPmFjY2Vz
c1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeVZhbDsKICAgICAgICAgc3R1YkluZm8tPmJ5dGVjb2Rl
SW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3Rh
bnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlw
ZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKKyAgICAgICAgaWYgKGlzT3BlcmFuZENv
bnN0YW50SW50KHByb3BlcnR5KSkKKyAgICAgICAgICAgIHN0dWJJbmZvLT5wcm9wZXJ0eUlzSW50
MzIgPSB0cnVlOwogICAgICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9
IHN0dWJJbmZvSW5kZXg7CiAgICAgICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5m
bzsKIApAQCAtMTQ5LDcgKzE0Nyw2IEBAIHZvaWQgSklUOjpnZW5lcmF0ZUdldEJ5VmFsU2xvd0Nh
c2UoY29uc3QgT3Bjb2RlVHlwZSYgYnl0ZWNvZGUsIFZlY3RvcjxTbG93Q2FzZUVuCiAgICAgbG9h
ZENvbnN0YW50KGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4LCBzdHViSW5mb0dQ
Uik7CiAgICAgbWF0ZXJpYWxpemVQb2ludGVySW50b01ldGFkYXRhKGJ5dGVjb2RlLCBPcGNvZGVU
eXBlOjpNZXRhZGF0YTo6b2Zmc2V0T2ZBcnJheVByb2ZpbGUoKSwgcHJvZmlsZUdQUik7CiAgICAg
ZW1pdE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1YihzbG93X29wX2dldF9ieV92YWxfcHJlcGFy
ZUNhbGxHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7Ci0KICAgICBlbWl0TmFr
ZWROZWFyQ2FsbCh2bS5nZXRDVElTdHViKGNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKS5yZXRhZ2dl
ZENvZGU8Tm9QdHJUYWc+KCkpOwogCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29k
ZSwgcmV0dXJuVmFsdWVHUFIpOwpAQCAtMjI0LDEwICsyMjEsOSBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9nZXRfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6
R2V0UHJpdmF0ZU5hbWUsCiAgICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdp
c3RlcnMoKSwgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIpOwog
Ci0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0g
QWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWU7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXgg
PSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5m
b0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1
cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFu
dEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1
YkluZm87CiAKQEAgLTM0NywxMCArMzQzLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc2V0X3ByaXZh
dGVfYnJhbmQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAg
bnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpTZXRQcml2YXRl
QnJhbmQsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAg
YmFzZUpTUiwgYnJhbmRKU1IsIHN0dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRv
IFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1Yklu
Zm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OlNldFByaXZhdGVC
cmFuZDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAg
ICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50
UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7
CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4
OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtNDMyLDEwICs0
MjcsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jaGVja19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJh
c2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6Q2hlY2tQcml2YXRlQnJhbmQsIFJlZ2lzdGVyU2V0
OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgYmFzZUpTUiwgYnJhbmRKU1Is
IHN0dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
ID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJ
bmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5m
by0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkNoZWNrUHJpdmF0ZUJyYW5kOwogICAgIHN0dWJJ
bmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9v
bDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50
UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxp
bmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5s
aW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC01MTcsMTUgKzUxMSwxMyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9wdXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlw
ZTo6UHV0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAg
ICAgICAgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHZhbHVlSlNSLCBwcm9maWxlR1BSLCBzdHViSW5m
b0dQUik7CiAKLSAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQotICAgICAg
ICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKLQotICAgIFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsK
KyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OlB1
dEJ5VmFsOwogICAgIHN0dWJJbmZvLT5wdXRLaW5kID0gc3RkOjppc19zYW1lX3Y8T3AsIE9wUHV0
QnlWYWxEaXJlY3Q+ID8gUHV0S2luZDo6RGlyZWN0IDogUHV0S2luZDo6Tm90RGlyZWN0OwogICAg
IHN0dWJJbmZvLT5lY21hTW9kZSA9IGVjbWFNb2RlKGJ5dGVjb2RlKTsKICAgICBzdHViSW5mby0+
Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAgICBKSVRDb25zdGFudFBvb2w6OkNv
bnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6
OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7CisgICAgaWYgKGlzT3BlcmFuZENv
bnN0YW50SW50KHByb3BlcnR5KSkKKyAgICAgICAgc3R1YkluZm8tPnByb3BlcnR5SXNJbnQzMiA9
IHRydWU7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5m
b0luZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtNjA5
LDEyICs2MDEsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8UwogICAgIG1vdmUoVHJ1c3RlZElt
bTMyKGJ5dGVjb2RlT2Zmc2V0KSwgYnl0ZWNvZGVPZmZzZXRHUFIpOwogICAgIGxvYWRDb25zdGFu
dChnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCwgc3R1YkluZm9HUFIpOwogICAg
IGVtaXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoc2xvd19vcF9wdXRfYnlfdmFsX3ByZXBh
cmVDYWxsR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwotICAgIENhbGwgY2Fs
bDsKLSAgICBhdXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdE9w
dGltaXplKTsKLSAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkJhc2VsaW5lSklU
KSkKLSAgICAgICAgZ2VuLnN0dWJJbmZvKCktPm1fc2xvd09wZXJhdGlvbiA9IG9wZXJhdGlvbjsK
LSAgICBlbHNlCi0gICAgICAgIGNhbGwgPSBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgZW1p
dE5ha2VkTmVhckNhbGwodm0uZ2V0Q1RJU3R1YihjaGVja0V4Y2VwdGlvbkdlbmVyYXRvcikucmV0
YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICNlbmRpZiAvLyBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5L
UykKIApAQCAtNjg2LDExICs2NzIsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3ByaXZhdGVf
bmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBudWxs
cHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBD
YWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OlB1dFByaXZhdGVOYW1l
LCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGJhc2VK
U1IsIHByb3BlcnR5SlNSLCB2YWx1ZUpTUiwgSW52YWxpZEdQUlJlZywgc3R1YkluZm9HUFIpOwog
Ci0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1
YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0g
QWNjZXNzVHlwZTo6UHV0UHJpdmF0ZU5hbWU7CiAgICAgc3R1YkluZm8tPnByaXZhdGVGaWVsZFB1
dEtpbmQgPSBieXRlY29kZS5tX3B1dEtpbmQ7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXgg
PSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5m
b0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1
cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFu
dEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1
YkluZm87CiAKQEAgLTg2NiwxMCArODUxLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGVsX2J5X2lk
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIENhY2hlYWJs
ZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX3VubGlu
a2VkQ29kZUJsb2NrLCAqaWRlbnQpLAogICAgICAgICBiYXNlSlNSLCByZXN1bHRKU1IsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBhdXRvIFsgc3R1YkluZm8s
IHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKICAgICBz
dHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkRlbGV0ZUJ5SUQ7CiAgICAgc3R1Yklu
Zm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29s
OjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQ
b29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlu
a2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxp
bmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTkzMSw3ICs5MTUsNiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZGVsX2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbAogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihDYWNoZWFibGVJZGVudGlmaWVy
OjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV91bmxpbmtlZENvZGVCbG9j
aywgKmlkZW50KS5yYXdCaXRzKCkpLCBwcm9wZXJ0eUdQUik7CiAgICAgbW92ZShUcnVzdGVkSW1t
MzIoYnl0ZWNvZGUubV9lY21hTW9kZS52YWx1ZSgpKSwgZWNtYU1vZGVHUFIpOwogICAgIGVtaXRO
YWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoc2xvd19vcF9kZWxfYnlfaWRfcHJlcGFyZUNhbGxH
ZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7Ci0KICAgICBlbWl0TmFrZWROZWFy
Q2FsbCh2bS5nZXRDVElTdHViKGNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8
Tm9QdHJUYWc+KCkpOwogICAgIHN0YXRpY19hc3NlcnQocmV0dXJuVmFsdWVHUFIgPT0gcmVnVDAp
OwogI2VuZGlmIC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQpAQCAtMTAwMywxMCArOTg2LDkg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGVsX2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29k
ZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCks
IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgYmFzZUpT
UiwgcHJvcGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIpOwogCi0g
ICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1Yklu
Zm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5s
aW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNj
ZXNzVHlwZTo6RGVsZXRlQnlWYWw7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5
dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4
ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHVi
SW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4
ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87
CiAKQEAgLTEwNjksNyArMTA1MSw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9kZWxfYnlfdmFs
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTCiAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcHJvcGVydHlHUFIpOwogICAgIG1vdmUoVHJ1
c3RlZEltbTMyKGJ5dGVjb2RlLm1fZWNtYU1vZGUudmFsdWUoKSksIGVjbWFNb2RlR1BSKTsKICAg
ICBlbWl0TmFrZWROZWFyQ2FsbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfZGVsX2J5X3ZhbF9wcmVw
YXJlQ2FsbEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKLQogICAgIGVtaXRO
YWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoY2hlY2tFeGNlcHRpb25HZW5lcmF0b3IpLnJldGFn
Z2VkQ29kZTxOb1B0clRhZz4oKSk7CiAgICAgc3RhdGljX2Fzc2VydChyZXR1cm5WYWx1ZUdQUiA9
PSByZWdUMCk7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVOS1MpCkBAIC0xMTM3LDEw
ICsxMTE4LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNl
bGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0
ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAg
ICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29k
ZUJsb2NrKG1fdW5saW5rZWRDb2RlQmxvY2ssICppZGVudCksIGJhc2VKU1IsIHJlc3VsdEpTUiwg
c3R1YkluZm9HUFIsIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOwogCi0gICAgVW5saW5rZWRTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAg
IGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVT
dHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6VHJ5R2V0
QnlJZDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsKLSAg
ICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50
UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5mbyk7
CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0luZGV4
OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApAQCAtMTIyMSwxMCAr
MTIwMSw5IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFz
ZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLCBiYXNlSlNSLCByZXN1bHRKU1Is
IHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKIAotICAgIFVubGlua2Vk
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsK
KyAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6Okdl
dEJ5SWREaXJlY3Q7CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5k
ZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9D
b25zdGFudFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1
YkluZm8pOwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1Yklu
Zm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTEz
MTgsMTAgKzEyOTcsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFz
ZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLCBiYXNlSlNSLCByZXN1bHRKU1Is
IHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKIAotICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBh
dXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IEFjY2Vzc1R5cGU6OkdldEJ5SWQ7
CiAgICAgc3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklU
Q29uc3RhbnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2wo
SklUQ29uc3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAg
IGdlbi5tX3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAg
ICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE0MDgsMTAgKzEzODYs
OSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0aF90aGlzKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2Vs
aW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRl
Y29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAg
ICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2Rl
QmxvY2sobV91bmxpbmtlZENvZGVCbG9jaywgKmlkZW50KSwgcmVzdWx0SlNSLCBiYXNlSlNSLCB0
aGlzSlNSLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZv
LCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAg
c3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRoaXM7CiAgICAg
c3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3Rh
bnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29u
c3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5t
X3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4u
bV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE1OTEsMTIgKzE1NjgsMTEgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgICAgIGJhc2VKU1IsIHZhbHVlSlNSLCBzdHViSW5mb0dQUiwgc2NyYXRj
aEdQUiwgZWNtYU1vZGUoYnl0ZWNvZGUpLAogICAgICAgICBkaXJlY3QgPyBQdXRLaW5kOjpEaXJl
Y3QgOiBQdXRLaW5kOjpOb3REaXJlY3QpOwogCi0gICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1YkluZm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHVi
SW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwog
ICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNjZXNzVHlwZTo6UHV0QnlJZDsKICAgICBzdHVi
SW5mby0+cHV0S2luZCA9IGRpcmVjdCA/IFB1dEtpbmQ6OkRpcmVjdCA6IFB1dEtpbmQ6Ok5vdERp
cmVjdDsKICAgICBzdHViSW5mby0+ZWNtYU1vZGUgPSBlY21hTW9kZShieXRlY29kZSk7CiAgICAg
c3R1YkluZm8tPmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3Rh
bnRQb29sOjpDb25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29u
c3RhbnRQb29sOjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5t
X3VubGlua2VkU3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4u
bV91bmxpbmtlZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTE3MTgsMTAgKzE2OTQsOSBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9pbl9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lz
dGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRl
bnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fdW5saW5rZWRD
b2RlQmxvY2ssICppZGVudCksIGJhc2VKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIpOwogCi0g
ICAgVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX3VubGlua2VkU3R1Yklu
Zm9zLmFkZCgpOworICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5s
aW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwogICAgIHN0dWJJbmZvLT5hY2Nlc3NUeXBlID0gQWNj
ZXNzVHlwZTo6SW5CeUlkOwogICAgIHN0dWJJbmZvLT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29k
ZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFk
ZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8s
IHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtlZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0
dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBA
IC0xODA3LDEwICsxNzgyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5fYnlfdmFsKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG51bGxwdHIsIEpJVFR5cGU6
OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgo
bV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6SW5CeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgcmVz
dWx0SlNSLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7CisgICAgYXV0byBbIHN0dWJJbmZv
LCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CiAgICAg
c3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpJbkJ5VmFsOwogICAgIHN0dWJJbmZv
LT5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwotICAgIEpJVENvbnN0YW50UG9vbDo6
Q29uc3RhbnQgc3R1YkluZm9JbmRleCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9v
bDo6VHlwZTo6U3RydWN0dXJlU3R1YkluZm8sIHN0dWJJbmZvKTsKICAgICBnZW4ubV91bmxpbmtl
ZFN0dWJJbmZvQ29uc3RhbnRJbmRleCA9IHN0dWJJbmZvSW5kZXg7CiAgICAgZ2VuLm1fdW5saW5r
ZWRTdHViSW5mbyA9IHN0dWJJbmZvOwogCkBAIC0xODcwLDcgKzE4NDQsNiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfaW5fYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbAogICAgIC8vIFNvLCB0aGVyZSdzIG5vIHBvaW50IGluIGNyZWF0aW5nIGEg
ZHVwbGljYXRlIHRodW5rIGp1c3QgdG8gZ2l2ZSBpdCBhIGRpZmZlcmVudCBuYW1lLgogICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPGRlY2x0eXBlKG9wZXJhdGlvbkluQnlWYWxPcHRpbWl6
ZSksIGRlY2x0eXBlKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpPjo6dmFsdWUpOwogICAgIGVt
aXROYWtlZE5lYXJDYWxsKHZtLmdldENUSVN0dWIoc2xvd19vcF9nZXRfYnlfdmFsX3ByZXBhcmVD
YWxsR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwotCiAgICAgZW1pdE5ha2Vk
TmVhckNhbGwodm0uZ2V0Q1RJU3R1YihjaGVja0V4Y2VwdGlvbkdlbmVyYXRvcikucmV0YWdnZWRD
b2RlPE5vUHRyVGFnPigpKTsKIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXR1
cm5WYWx1ZUdQUik7CkBAIC0xODk0LDEwICsxODY3LDkgQEAgdm9pZCBKSVQ6OmVtaXRIYXNQcml2
YXRlKFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBiYXNlLCBWaXJ0dWFsUmVn
aXMKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9i
eXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCB0eXBlLCBSZWdp
c3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGJhc2VKU1IsIHBy
b3BlcnR5SlNSLCByZXN1bHRKU1IsIHN0dWJJbmZvR1BSKTsKIAotICAgIFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbV91bmxpbmtlZFN0dWJJbmZvcy5hZGQoKTsKKyAgICBh
dXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8oKTsKICAgICBzdHViSW5mby0+YWNjZXNzVHlwZSA9IHR5cGU7CiAgICAgc3R1YkluZm8t
PmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlSW5kZXg7Ci0gICAgSklUQ29uc3RhbnRQb29sOjpD
b25zdGFudCBzdHViSW5mb0luZGV4ID0gYWRkVG9Db25zdGFudFBvb2woSklUQ29uc3RhbnRQb29s
OjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbywgc3R1YkluZm8pOwogICAgIGdlbi5tX3VubGlua2Vk
U3R1YkluZm9Db25zdGFudEluZGV4ID0gc3R1YkluZm9JbmRleDsKICAgICBnZW4ubV91bmxpbmtl
ZFN0dWJJbmZvID0gc3R1YkluZm87CiAKQEAgLTMyMjcsMTAgKzMxOTksOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9lbnVtZXJhdG9yX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBB
Y2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlH
UFIpLCBKU1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBzdHViSW5mb0dQUik7CiAKLSAgICBVbmxpbmtl
ZFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1fdW5saW5rZWRTdHViSW5mb3MuYWRkKCk7
CisgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVj
dHVyZVN0dWJJbmZvKCk7CiAgICAgc3R1YkluZm8tPmFjY2Vzc1R5cGUgPSBBY2Nlc3NUeXBlOjpH
ZXRCeVZhbDsKICAgICBzdHViSW5mby0+Ynl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVJbmRleDsK
LSAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHN0dWJJbmZvSW5kZXggPSBhZGRUb0NvbnN0
YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6OlN0cnVjdHVyZVN0dWJJbmZvLCBzdHViSW5m
byk7CiAgICAgZ2VuLm1fdW5saW5rZWRTdHViSW5mb0NvbnN0YW50SW5kZXggPSBzdHViSW5mb0lu
ZGV4OwogICAgIGdlbi5tX3VubGlua2VkU3R1YkluZm8gPSBzdHViSW5mbzsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvU2VnbWVudGVkVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWdt
ZW50ZWRWZWN0b3IuaAppbmRleCA4M2MxNzI5YTg2ZWYxZTRiMjA0M2ZiNjcxMzM0MDk0MzM2MTIw
MmE3Li5jNWI5ZThhMWVjZGQzNWQ1Y2IzZGQ5ZGU1NTEwZTBjNDgyOWM2MzUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9TZWdtZW50ZWRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9T
ZWdtZW50ZWRWZWN0b3IuaApAQCAtNDQsNiArNDQsMTIgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
cHVibGljOgogICAgICAgICB0eXBlZGVmIFNlZ21lbnRlZFZlY3Rvckl0ZXJhdG9yPFQsIFNlZ21l
bnRTaXplPiBJdGVyYXRvcjsKIAorICAgICAgICB1c2luZyBpdGVyYXRvcl9jYXRlZ29yeSA9IHN0
ZDo6Zm9yd2FyZF9pdGVyYXRvcl90YWc7CisgICAgICAgIHVzaW5nIHZhbHVlX3R5cGUgPSBUOwor
ICAgICAgICB1c2luZyBkaWZmZXJlbmNlX3R5cGUgPSBwdHJkaWZmX3Q7CisgICAgICAgIHVzaW5n
IHBvaW50ZXIgPSBjb25zdCBUKjsKKyAgICAgICAgdXNpbmcgcmVmZXJlbmNlID0gY29uc3QgVCY7
CisKICAgICAgICAgflNlZ21lbnRlZFZlY3Rvckl0ZXJhdG9yKCkgeyB9CiAKICAgICAgICAgVCYg
b3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gbV92ZWN0b3IuYXQobV9pbmRleCk7IH0KQEAgLTk2
LDcgKzEwMiwxMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAKICAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgU2VnbWVudGVkVmVjdG9ySXRl
cmF0b3I8VCwgU2VnbWVudFNpemU+IEl0ZXJhdG9yOworICAgICAgICB1c2luZyBJdGVyYXRvciA9
IFNlZ21lbnRlZFZlY3Rvckl0ZXJhdG9yPFQsIFNlZ21lbnRTaXplPjsKKworICAgICAgICB1c2lu
ZyB2YWx1ZV90eXBlID0gVDsKKyAgICAgICAgdXNpbmcgaXRlcmF0b3IgPSBJdGVyYXRvcjsKIAog
ICAgICAgICBTZWdtZW50ZWRWZWN0b3IoKSA9IGRlZmF1bHQ7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>