<?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>238414</bug_id>
          
          <creation_ts>2022-03-26 06:45:19 -0700</creation_ts>
          <short_desc>[JSC] Use constants buffer to load JSGlobalObject in BaselineJIT thunks</short_desc>
          <delta_ts>2022-03-29 17:10:17 -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>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855376</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 06:45:19 -0700</bug_when>
    <thetext>[JSC] Use constants buffer to load JSGlobalObject in BaselineJIT thunks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855377</commentid>
    <comment_count>1</comment_count>
      <attachid>455844</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 06:47:55 -0700</bug_when>
    <thetext>Created attachment 455844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855378</commentid>
    <comment_count>2</comment_count>
      <attachid>455845</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 06:50:41 -0700</bug_when>
    <thetext>Created attachment 455845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856254</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-29 17:09:35 -0700</bug_when>
    <thetext>Committed r292083 (249010@main): &lt;https://commits.webkit.org/249010@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455845.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856255</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-29 17:10:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/91013622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455844</attachid>
            <date>2022-03-26 06:47:55 -0700</date>
            <delta_ts>2022-03-26 06:50:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238414-20220326064754.patch</filename>
            <type>text/plain</type>
            <size>25192</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjBhNzhiODI1OTMxMzI5NjYwNTdjMzhkMjVmNTRkMGUzNGU3YmZlLi5kMjQ3Y2I0MTRhMzIxYWQ1
ZTQ0ZGIyZmI3N2E4MzczMTY1NjBmZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBjb25zdGFudHMgYnVmZmVyIHRvIGxvYWQgSlNHbG9iYWxP
YmplY3QgaW4gQmFzZWxpbmVKSVQgdGh1bmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGVzZSB0aHVua3MgYXJlIG9ubHkgY2FsbGVkIGZy
b20gQmFzZWxpbmVKSVQsIHdlIGNhbiBhc3N1bWUgY29uc3RhbnRzCisgICAgICAgIGJ1ZmZlciBy
ZWdpc3Rlci4gQW5kIHNpbmNlIHdlIGFyZSBhbHdheXMgdXNpbmcgMCBpbmRleCBmb3IgSlNHbG9i
YWxPYmplY3QsCisgICAgICAgIHdlIGNhbiBlbmNvZGUgdGhpcyBpbnRvIHRoZXNlIHNoYXJlZCB0
aHVua3MgZGlyZWN0bHkgaW5zdGVhZCBvZiBsb2FkaW5nCisgICAgICAgIENvZGVCbG9jayBwb2lu
dGVyIGZyb20gdGhlIHN0YWNrLgorCisgICAgICAgIFdlIGFsc28gZml4IHVzaW5nIE9CSkVDVF9P
RkZTRVRPRiBmb3IgSlNHbG9iYWxPYmplY3QgZGlyZWN0bHkuIFdlIHNob3VsZCB1c2UKKyAgICAg
ICAgaXQgYXMgSlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mWFhYIHRvIG1ha2UgaXQgY2xlYW4gYW5k
IG1ha2UgaXQgYW5ub3RhdGVkIHRoYXQKKyAgICAgICAgdGhlc2UgZmllbGRzIGFyZSBhY2Nlc3Nl
ZCBieSBKSVQuCisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpK
SVQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYXJSZWFkT25seUNoZWNrKToKKyAgICAgICAg
KiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SklUOjpsb2FkQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpKSVQ6OmxvYWRHbG9iYWxPYmplY3Qp
OgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OnZhbHVlSXNG
YWxzZXlHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVQ6OnZhbHVlSXNUcnV0aHlHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpKSVQ6Om9wX3Rocm93X2hhbmRsZXJHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpKSVQ6Om9wX2NoZWNrX3RyYXBzX2hhbmRsZXJHZW5lcmF0b3IpOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19v
cF9nZXRfYnlfdmFsX2NhbGxTbG93T3BlcmF0aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9y
KToKKyAgICAgICAgKEpTQzo6SklUOjpzbG93X29wX2dldF9wcml2YXRlX25hbWVfY2FsbFNsb3dP
cGVyYXRpb25UaGVuQ2hlY2tFeGNlcHRpb25HZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVQ6
OnNsb3dfb3BfcHV0X2J5X3ZhbF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2VwdGlvbkdl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9wdXRfcHJpdmF0ZV9uYW1lX2Nh
bGxTbG93T3BlcmF0aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6SklUOjpzbG93X29wX2RlbF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2Vw
dGlvbkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9kZWxfYnlfdmFsX2Nh
bGxTbG93T3BlcmF0aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6SklUOjpzbG93X29wX2dldF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2Vw
dGlvbkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9nZXRfYnlfaWRfd2l0
aF90aGlzX2NhbGxTbG93T3BlcmF0aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6SklUOjpzbG93X29wX3B1dF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoZW5D
aGVja0V4Y2VwdGlvbkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVPcFJl
c29sdmVTY29wZVRodW5rKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNj
b3BlVGh1bmspOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6b2Zmc2V0T2ZWYXJJbmplY3Rpb25XYXRjaHBvaW50KToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mVmFyUmVhZE9ubHlXYXRjaHBvaW50KToKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mRnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3lt
Ym9sRnVuY3Rpb24pOgorCiAyMDIyLTAzLTI2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gSW5jbHVkZSBhcmd1bWVudFJlZ2lzdGVycyBpbiBpZGVu
dGl0eSBvZiBTbG93UGF0aENhbGxLZXkgd2hlbiBjbG9iYmVyQWxsUmVnc0luRlRMSUNTbG93UGF0
aCBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZTljMGVjYzMwZWFj
YzY4YzU1OWY4YWM0NjNlMTA2MjIzMWRkZWI2YS4uZjEyMzU1NzgyMGMzNGY4NzYyYzE4YTk1MDNm
M2E5NmY3YjRjNjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNzcsNyArNzcs
OCBAQCBKSVQ6OkpJVChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUluZGV4
IGxvb3BPU1JFbnRyeUJ5dGVjb2RlSW5kZXgpCiAgICAgLCBtX3Nob3VsZEVtaXRQcm9maWxpbmco
ZmFsc2UpCiAgICAgLCBtX2xvb3BPU1JFbnRyeUJ5dGVjb2RlSW5kZXgobG9vcE9TUkVudHJ5Qnl0
ZWNvZGVJbmRleCkKIHsKLSAgICBtX2dsb2JhbE9iamVjdENvbnN0YW50ID0gYWRkVG9Db25zdGFu
dFBvb2woSklUQ29uc3RhbnRQb29sOjpUeXBlOjpHbG9iYWxPYmplY3QpOworICAgIGF1dG8gZ2xv
YmFsT2JqZWN0Q29uc3RhbnQgPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5
cGU6Okdsb2JhbE9iamVjdCk7CisgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3RDb25zdGFu
dCwgZ2xvYmFsT2JqZWN0Q29uc3RhbnQgPT0gc19nbG9iYWxPYmplY3RDb25zdGFudCk7CiAgICAg
bV9wcm9maWxlZENvZGVCbG9jayA9IGNvZGVCbG9jazsKICAgICBtX3VubGlua2VkQ29kZUJsb2Nr
ID0gY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygpOwogfQpAQCAtMTM3LDcgKzEzOCw3IEBA
IHZvaWQgSklUOjplbWl0VmFyUmVhZE9ubHlDaGVjayhSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSwg
R1BSUmVnIHNjcmF0Y2hHUFIpCiB7CiAgICAgaWYgKHJlc29sdmVUeXBlID09IEdsb2JhbFZhciB8
fCByZXNvbHZlVHlwZSA9PSBHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSB7CiAgICAg
ICAgIGxvYWRHbG9iYWxPYmplY3Qoc2NyYXRjaEdQUik7Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVz
cyhzY3JhdGNoR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdmFyUmVhZE9u
bHlXYXRjaHBvaW50KSksIHNjcmF0Y2hHUFIpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3Moc2Ny
YXRjaEdQUiwgSlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mVmFyUmVhZE9ubHlXYXRjaHBvaW50KCkp
LCBzY3JhdGNoR1BSKTsKICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWRkcmVz
cyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0YXRlKCkpLCBUcnVzdGVkSW1t
MzIoSXNJbnZhbGlkYXRlZCkpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRl
eCBiOGZkYTVkMWI0MzE1ZTlmN2Q3MDRjNDZhYWE1YTViMWJiMDM0NGZiLi45NzI0N2NjNTA2ODJl
Yjg4NTRmMjhmY2U1Nzk1NzZhYjJiM2MxYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAg
LTE2OSwxNiArMTY5LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1c2luZyBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3Q7CiAgICAgICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyOjpMYWJlbDsK
IAotICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBwYXRjaEdldEJ5SWREZWZhdWx0
U3RydWN0dXJlID0gdW51c2VkUG9pbnRlcjsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQg
cGF0Y2hHZXRCeUlkRGVmYXVsdE9mZnNldCA9IDA7Ci0gICAgICAgIC8vIE1hZ2ljIG51bWJlciAt
IGluaXRpYWwgb2Zmc2V0IGNhbm5vdCBiZSByZXByZXNlbnRhYmxlIGFzIGEgc2lnbmVkIDhiaXQg
dmFsdWUsIG9yIHRoZSBYODZBc3NlbWJsZXIKLSAgICAgICAgLy8gd2lsbCBjb21wcmVzcyB0aGUg
ZGlzcGxhY2VtZW50LCBhbmQgd2UgbWF5IG5vdCBiZSBhYmxlIHRvIGZpdCBhIHBhdGNoZWQgb2Zm
c2V0LgotICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBwYXRjaFB1dEJ5SWREZWZhdWx0T2Zm
c2V0ID0gMjU2OwotCiAgICAgICAgIHVzaW5nIEJhc2UgPSBKU0ludGVyZmFjZUpJVDsKIAogICAg
IHB1YmxpYzoKLSAgICAgICAgSklUKFZNJiwgQ29kZUJsb2NrKiA9IG51bGxwdHIsIEJ5dGVjb2Rl
SW5kZXggbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgPSBCeXRlY29kZUluZGV4KDApKTsKKyAg
ICAgICAgSklUKFZNJiwgQ29kZUJsb2NrKiwgQnl0ZWNvZGVJbmRleCBsb29wT1NSRW50cnlCeXRl
Y29kZU9mZnNldCk7CiAgICAgICAgIH5KSVQoKTsKIAogICAgICAgICBWTSYgdm0oKSB7IHJldHVy
biAqSlNJbnRlcmZhY2VKSVQ6OnZtKCk7IH0KQEAgLTE4OSw5ICsxODMsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICB2b2lkIGRvTWFpblRocmVhZFByZXBhcmF0aW9uQmVmb3JlQ29tcGls
ZSgpOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGUo
Vk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0
LCBCeXRlY29kZUluZGV4IGJ5dGVjb2RlT2Zmc2V0ID0gQnl0ZWNvZGVJbmRleCgwKSkKKyAgICAg
ICAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGUoVk0mIHZtLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSklUKHZtLCBjb2RlQmxvY2ssIGJ5dGVjb2RlT2Zmc2V0KS5wcml2YXRlQ29t
cGlsZShjb2RlQmxvY2ssIGVmZm9ydCk7CisgICAgICAgICAgICByZXR1cm4gSklUKHZtLCBjb2Rl
QmxvY2ssIEJ5dGVjb2RlSW5kZXgoMCkpLnByaXZhdGVDb21waWxlKGNvZGVCbG9jaywgZWZmb3J0
KTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291
bnRGb3IoVW5saW5rZWRDb2RlQmxvY2sqKTsKQEAgLTIwNCw2ICsxOTgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBzX21ldGFkYXRhR1BSID0g
TExJbnQ6OlJlZ2lzdGVyczo6bWV0YWRhdGFUYWJsZUdQUjsKICAgICAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgc19jb25zdGFudHNHUFIgPSBMTEludDo6UmVnaXN0ZXJzOjpwYkdQUjsKKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHNfZ2xvYmFs
T2JqZWN0Q29uc3RhbnQgeyAwIH07CiAKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIHByaXZh
dGVDb21waWxlTWFpblBhc3MoKTsKQEAgLTI1Niw2ICsyNTEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgbG9hZENvbnN0YW50KHVuc2lnbmVkIGNvbnN0YW50SW5kZXgsIEdQUlJl
Zyk7CiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBsb2FkR2xvYmFsT2JqZWN0KEdQUlJlZyk7
CisKKyAgICAgICAgLy8gQXNzdW1pbmcgc19jb25zdGFudHNHUFIgaXMgYXZhaWxhYmxlLgorICAg
ICAgICBzdGF0aWMgdm9pZCBsb2FkR2xvYmFsT2JqZWN0KENDYWxsSGVscGVycyYsIEdQUlJlZyk7
CisgICAgICAgIHN0YXRpYyB2b2lkIGxvYWRDb25zdGFudChDQ2FsbEhlbHBlcnMmLCB1bnNpZ25l
ZCBjb25zdGFudEluZGV4LCBHUFJSZWcpOworCiAgICAgICAgIHZvaWQgbG9hZENvZGVCbG9ja0Nv
bnN0YW50KFZpcnR1YWxSZWdpc3RlciwgSlNWYWx1ZVJlZ3MpOwogICAgICAgICB2b2lkIGxvYWRD
b2RlQmxvY2tDb25zdGFudFBheWxvYWQoVmlydHVhbFJlZ2lzdGVyLCBSZWdpc3RlcklEKTsKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtOTYyLDcgKzk2Miw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWZQdHI8QmFzZWxpbmVKSVRDb2RlPiBtX2ppdENvZGU7CiAKICAgICAgICAgVmVj
dG9yPEpJVENvbnN0YW50UG9vbDo6VmFsdWU+IG1fY29uc3RhbnRQb29sOwotICAgICAgICBKSVRD
b25zdGFudFBvb2w6OkNvbnN0YW50IG1fZ2xvYmFsT2JqZWN0Q29uc3RhbnQgeyBzdGQ6Om51bWVy
aWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgfTsKICAgICAgICAgU2VnbWVudGVkVmVjdG9yPFVu
bGlua2VkQ2FsbExpbmtJbmZvPiBtX3VubGlua2VkQ2FsbHM7CiAgICAgICAgIFNlZ21lbnRlZFZl
Y3RvcjxVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvPiBtX3VubGlua2VkU3R1YkluZm9zOwogICAg
ICAgICBGaXhlZFZlY3RvcjxTaW1wbGVKdW1wVGFibGU+IG1fc3dpdGNoSnVtcFRhYmxlczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggYmZmYjJmNGMzMDMwZWVlZTE0
Zjg5MGVmODFjYTBlM2U4MTk4N2NkNi4uYmQzN2NhZGIzMWQ1NDI5NmQ1Zjc5NDdjN2U0MDY2NDY0
ZjEzMTgzMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTQ5Mywx
NCArNDkzLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6Om1hdGVyaWFsaXplUG9pbnRlcklu
dG9NZXRhZGF0YShjb25zdCBCeXRlY29kZSYgYnl0ZWNvZGUsCiAgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihtX3Byb2ZpbGVkQ29kZUJsb2NrLT5tZXRhZGF0YVRhYmxlKCktPm9mZnNldEluTWV0YWRh
dGFUYWJsZShieXRlY29kZSkgKyBvZmZzZXQpLCBzX21ldGFkYXRhR1BSLCByZXN1bHQpOwogfQog
CitBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpsb2FkQ29uc3RhbnQoQ0NhbGxIZWxwZXJzJiBqaXQs
IEpJVENvbnN0YW50UG9vbDo6Q29uc3RhbnQgY29uc3RhbnRJbmRleCwgR1BSUmVnIHJlc3VsdCkK
K3sKKyAgICBqaXQubG9hZFB0cihBZGRyZXNzKHNfY29uc3RhbnRzR1BSLCBCYXNlbGluZUpJVERh
dGE6Om9mZnNldE9mRGF0YSgpICsgc3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25zdGFudEluZGV4
KSAqIHNpemVvZih2b2lkKikpLCByZXN1bHQpOworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgSklU
Ojpsb2FkR2xvYmFsT2JqZWN0KENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgcmVzdWx0KQorewor
ICAgIGxvYWRDb25zdGFudChqaXQsIHNfZ2xvYmFsT2JqZWN0Q29uc3RhbnQsIHJlc3VsdCk7Cit9
CisKIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmxvYWRDb25zdGFudChKSVRDb25zdGFudFBvb2w6
OkNvbnN0YW50IGNvbnN0YW50SW5kZXgsIEdQUlJlZyByZXN1bHQpCiB7Ci0gICAgbG9hZFB0cihB
ZGRyZXNzKHNfY29uc3RhbnRzR1BSLCBCYXNlbGluZUpJVERhdGE6Om9mZnNldE9mRGF0YSgpICsg
c3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25zdGFudEluZGV4KSAqIHNpemVvZih2b2lkKikpLCBy
ZXN1bHQpOworICAgIGxvYWRDb25zdGFudCgqdGhpcywgY29uc3RhbnRJbmRleCwgcmVzdWx0KTsK
IH0KIAogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6bG9hZEdsb2JhbE9iamVjdChHUFJSZWcgcmVz
dWx0KQogewotICAgIGxvYWRDb25zdGFudChtX2dsb2JhbE9iamVjdENvbnN0YW50LCByZXN1bHQp
OworICAgIGxvYWRHbG9iYWxPYmplY3QoKnRoaXMsIHJlc3VsdCk7CiB9CiAKIEFMV0FZU19JTkxJ
TkUgc3RhdGljIHZvaWQgbG9hZEFkZHJPZkNvZGVCbG9ja0NvbnN0YW50QnVmZmVyKEpJVCAmaml0
LCBHUFJSZWcgZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5k
ZXggNWI4NWM3YWM1MTdhNzAyZGNmZDdhNjJlZGYwOTIxMWEzZDVkMzMzZS4uOWNmN2Q1ZDlmYmY5
ODY3NjhmNzU3OWU2YmFkZGJjYmQyMjc1MGE1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfb3Zl
cnJpZGVzX2hhc19pbnN0YW5jZShjb25zdCBKU0luc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24KICAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFu
Y2Ugd291bGQgZG8uCiAgICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIHJlZ1QwKTsKICAgICBsb2Fk
R2xvYmFsT2JqZWN0KHJlZ1QxKTsKLSAgICBKdW1wIGN1c3RvbUhhc0luc3RhbmNlVmFsdWUgPSBi
cmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QyLCBBZGRyZXNzKHJlZ1QxLCBPQkpFQ1RfT0ZGU0VUT0Yo
SlNHbG9iYWxPYmplY3QsIG1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24p
KSk7CisgICAgSnVtcCBjdXN0b21IYXNJbnN0YW5jZVZhbHVlID0gYnJhbmNoUHRyKE5vdEVxdWFs
LCByZWdUMiwgQWRkcmVzcyhyZWdUMSwgSlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mRnVuY3Rpb25Q
cm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkpOwogICAgIC8vIFdlIGtub3cgdGhhdCBj
b25zdHJ1Y3RvciBpcyBhbiBvYmplY3QgZnJvbSB0aGUgd2F5IGJ5dGVjb2RlIGlzIGVtaXR0ZWQg
Zm9yIGluc3RhbmNlb2YgZXhwcmVzc2lvbnMuCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlclBh
eWxvYWQoY29uc3RydWN0b3IsIHJlZ1QyKTsKICAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9y
ICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJyBpLmUuIHRoZSBvYmplY3QgaXMgbm90IGEg
Qy1BUEkgdXNlciBub3IgYSBib3VuZCBmdW5jdGlvbi4KQEAgLTQ3Nyw4ICs0NzcsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6dmFsdWVJc0ZhbHNleUdlbmVy
YXRvcihWTSYgdm0pCiAKICAgICBqaXQudGFnUmV0dXJuQWRkcmVzcygpOwogCi0gICAgaml0Lmxv
YWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spLCBnbG9iYWxPYmplY3RH
UFIpOwotICAgIGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6
Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3RHUFIpOworICAgIGxvYWRHbG9i
YWxPYmplY3Qoaml0LCBnbG9iYWxPYmplY3RHUFIpOwogICAgIGppdC5tb3ZlKFRydXN0ZWRJbW0z
MigxKSwgcmVnVDApOwogICAgIGF1dG8gaXNGYWxzZXkgPSBqaXQuYnJhbmNoSWZGYWxzZXkodm0s
IHZhbHVlSlNSLCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsIGZwUmVnVDAsIGZwUmVnVDEsIHNo
b3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBq
aXQubW92ZShUcnVzdGVkSW1tMzIoMCksIHJlZ1QwKTsKQEAgLTY2NCw4ICs2NjMsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6dmFsdWVJc1RydXRoeUdlbmVy
YXRvcihWTSYgdm0pCiAKICAgICBqaXQudGFnUmV0dXJuQWRkcmVzcygpOwogCi0gICAgaml0Lmxv
YWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spLCBnbG9iYWxPYmplY3RH
UFIpOwotICAgIGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6
Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3RHUFIpOworICAgIGxvYWRHbG9i
YWxPYmplY3Qoaml0LCBnbG9iYWxPYmplY3RHUFIpOwogICAgIGppdC5tb3ZlKFRydXN0ZWRJbW0z
MigxKSwgcmVnVDApOwogICAgIGF1dG8gaXNUcnV0aHkgPSBqaXQuYnJhbmNoSWZUcnV0aHkodm0s
IHZhbHVlSlNSLCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsIGZwUmVnVDAsIGZwUmVnVDEsIHNo
b3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBq
aXQubW92ZShUcnVzdGVkSW1tMzIoMCksIHJlZ1QwKTsKQEAgLTczNSw4ICs3MzMsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6b3BfdGhyb3dfaGFuZGxlckdl
bmVyYXRvcihWTSYgdm0pCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9y
ZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAg
IGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFs
T2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29k
ZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBs
b2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uVGhyb3cpPihnbG9iYWxPYmplY3RHUFIsIHRocm93blZh
bHVlSlNSKTsKICAgICBDYWxsIG9wZXJhdGlvbiA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7
CiAKQEAgLTE1NjUsOCArMTU2Miw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0
clRhZz4gSklUOjpvcF9jaGVja190cmFwc19oYW5kbGVyR2VuZXJhdG9yKFZNJiB2CiAgICAgLy8g
Q2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0
YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBq
aXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3Io
Q2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9h
ZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9i
amVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xv
YmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
SGFuZGxlVHJhcHMpPihnbG9iYWxPYmplY3RHUFIpOwogICAgIENDYWxsSGVscGVyczo6Q2FsbCBv
cGVyYXRpb24gPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IGM4YjhiMGJmM2RlMWYz
Y2ZiN2JkZDliMDFjMjdhNDc2Nzk5OTM3ZjguLmVkYmQ4NTllNzRkMzA4ZTk4MmZhNzZkOGI1MTQ5
OGMyMDZlYWZmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCkBAIC0xNDksOCArMTQ5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJ
VFRodW5rUHRyVGFnPiBKSVQ6OnNsb3dfb3BfZ2V0X2J5X3ZhbF9jYWxsU2xvd09wZXJhdGlvblQK
ICAgICAvLyBDYWxsIHNsb3cgb3BlcmF0aW9uCiAgICAgaml0LnN0b3JlMzIoYnl0ZWNvZGVPZmZz
ZXRHUFIsIHRhZ0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykp
OwogICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7Ci0gICAgaml0LmxvYWRQdHIoYWRk
cmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spLCBnbG9iYWxPYmplY3RHUFIpOwotICAg
IGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6Om9mZnNldE9m
R2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3RHUFIpOworICAgIGxvYWRHbG9iYWxPYmplY3Qo
aml0LCBnbG9iYWxPYmplY3RHUFIpOwogICAgIGppdC5zZXR1cEFyZ3VtZW50czxTbG93T3BlcmF0
aW9uPihnbG9iYWxPYmplY3RHUFIsIHN0dWJJbmZvR1BSLCBwcm9maWxlR1BSLCBiYXNlSlNSLCBw
cm9wZXJ0eUpTUik7CiAgICAgc3RhdGljX2Fzc2VydChwcmVmZXJyZWRBcmd1bWVudEdQUjxTbG93
T3BlcmF0aW9uLCAxPigpID09IGFyZ3VtZW50R1BSMSwgIk5lZWRlZCBmb3IgYnJhbmNoIHRvIHNs
b3cgb3BlcmF0aW9uIHZpYSBTdHViSW5mbyIpOwogICAgIGppdC5jYWxsKEFkZHJlc3MoYXJndW1l
bnRHUFIxLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBPcGVy
YXRpb25QdHJUYWcpOwpAQCAtMjQ0LDggKzI0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxK
SVRUaHVua1B0clRhZz4gSklUOjpzbG93X29wX2dldF9wcml2YXRlX25hbWVfY2FsbFNsb3dPcGVy
CiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zm
c2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMp
KTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFk
ZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAg
ICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRP
Zkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0
KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8U2xvd09wZXJh
dGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgYmFzZUpTUiwgcHJvcGVydHlKU1Ip
OwogICAgIHN0YXRpY19hc3NlcnQocHJlZmVycmVkQXJndW1lbnRHUFI8U2xvd09wZXJhdGlvbiwg
MT4oKSA9PSBhcmd1bWVudEdQUjEsICJOZWVkZWQgZm9yIGJyYW5jaCB0byBzbG93IG9wZXJhdGlv
biB2aWEgU3R1YkluZm8iKTsKICAgICBqaXQuY2FsbChBZGRyZXNzKGFyZ3VtZW50R1BSMSwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRyVGFn
KTsKQEAgLTQ2Nyw4ICs0NjUsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJU
YWc+IEpJVDo6c2xvd19vcF9wdXRfYnlfdmFsX2NhbGxTbG93T3BlcmF0aW9uVAogICAgIC8vIENh
bGwgc2xvdyBvcGVyYXRpb24KICAgICBqaXQuc3RvcmUzMihieXRlY29kZU9mZnNldEdQUiwgdGFn
Rm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSk7CiAgICAgaml0
LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsKLSAgICBqaXQubG9hZFB0cihhZGRyZXNzRm9yKENh
bGxGcmFtZVNsb3Q6OmNvZGVCbG9jayksIGdsb2JhbE9iamVjdEdQUik7Ci0gICAgaml0LmxvYWRQ
dHIoQWRkcmVzcyhnbG9iYWxPYmplY3RHUFIsIENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmpl
Y3QoKSksIGdsb2JhbE9iamVjdEdQUik7CisgICAgbG9hZEdsb2JhbE9iamVjdChqaXQsIGdsb2Jh
bE9iamVjdEdQUik7CiAgICAgaml0LnNldHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPFNsb3dP
cGVyYXRvaW4+KHN0dWJJbmZvR1BSLAogICAgICAgICBnbG9iYWxPYmplY3RHUFIsIGJhc2VKU1Is
IHByb3BlcnR5SlNSLCB2YWx1ZUpTUiwgc3R1YkluZm9HUFIsIHByb2ZpbGVHUFIpOwogICAgIGpp
dC5jYWxsKEFkZHJlc3Mobm9uQXJnR1BSMCwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xv
d09wZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTU2NSw4ICs1NjIsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6c2xvd19vcF9wdXRfcHJpdmF0
ZV9uYW1lX2NhbGxTbG93T3BlcgogICAgIC8vIENhbGwgc2xvdyBvcGVyYXRpb24KICAgICBqaXQu
c3RvcmUzMihieXRlY29kZU9mZnNldEdQUiwgdGFnRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKSk7CiAgICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsK
LSAgICBqaXQubG9hZFB0cihhZGRyZXNzRm9yKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayksIGds
b2JhbE9iamVjdEdQUik7Ci0gICAgaml0LmxvYWRQdHIoQWRkcmVzcyhnbG9iYWxPYmplY3RHUFIs
IENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmplY3QoKSksIGdsb2JhbE9iamVjdEdQUik7Cisg
ICAgbG9hZEdsb2JhbE9iamVjdChqaXQsIGdsb2JhbE9iamVjdEdQUik7CiAgICAgLy8gTG9hZGlu
ZyBudWxscHRyIHRvIHRoaXMgcmVnaXN0ZXIgaXMgbmVjZXNzYXJ5IGZvciBzZXR1cEFyZ3VtZW50
c0ZvckluZGlyZWN0Q2FsbAogICAgIC8vIHRvIG5vdCBjbG9iYmVyIGdsb2JhbE9iamVjdEdQUiBv
biBBUk1fVEhVTUIyLCBhbmQgaXMgb3RoZXJ3aXNlIGhhcm1sZXNzLgogICAgIGppdC5tb3ZlKFRy
dXN0ZWRJbW1QdHIobnVsbHB0ciksIHByb2ZpbGVHUFIpOwpAQCAtNzQ1LDggKzc0MSw3IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpzbG93X29wX2RlbF9ieV9p
ZF9jYWxsU2xvd09wZXJhdGlvblRoCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGpp
dC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0p
OwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwg
Z2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQ
UiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsK
KyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8U2xvd09wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwg
YmFzZUpTUiwgcHJvcGVydHlHUFIsIGVjbWFNb2RlR1BSKTsKICAgICBzdGF0aWNfYXNzZXJ0KHBy
ZWZlcnJlZEFyZ3VtZW50R1BSPFNsb3dPcGVyYXRpb24sIDE+KCkgPT0gYXJndW1lbnRHUFIxLCAi
TmVlZGVkIGZvciBicmFuY2ggdG8gc2xvdyBvcGVyYXRpb24gdmlhIFN0dWJJbmZvIik7CiAgICAg
aml0LmNhbGwoQWRkcmVzcyhhcmd1bWVudEdQUjEsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRP
ZlNsb3dPcGVyYXRpb24oKSksIE9wZXJhdGlvblB0clRhZyk7CkBAIC04NTcsOCArODUyLDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVQ6OnNsb3dfb3BfZGVsX2J5
X3ZhbF9jYWxsU2xvd09wZXJhdGlvblQKICAgICAvLyBDYWxsIHNsb3cgb3BlcmF0aW9uCiAgICAg
aml0LnN0b3JlMzIoYnl0ZWNvZGVPZmZzZXRHUFIsIHRhZ0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcykpOwogICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2
bSk7Ci0gICAgaml0LmxvYWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2sp
LCBnbG9iYWxPYmplY3RHUFIpOwotICAgIGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xvYmFsT2JqZWN0
R1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3RHUFIp
OworICAgIGxvYWRHbG9iYWxPYmplY3Qoaml0LCBnbG9iYWxPYmplY3RHUFIpOwogICAgIGppdC5z
ZXR1cEFyZ3VtZW50czxTbG93T3BlcmF0aW9uPihnbG9iYWxPYmplY3RHUFIsIHN0dWJJbmZvR1BS
LCBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgZWNtYU1vZGVHUFIpOwogICAgIHN0YXRpY19hc3NlcnQo
cHJlZmVycmVkQXJndW1lbnRHUFI8U2xvd09wZXJhdGlvbiwgMT4oKSA9PSBhcmd1bWVudEdQUjEs
ICJOZWVkZWQgZm9yIGJyYW5jaCB0byBzbG93IG9wZXJhdGlvbiB2aWEgU3R1YkluZm8iKTsKICAg
ICBqaXQuY2FsbChBZGRyZXNzKGFyZ3VtZW50R1BSMSwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNl
dE9mU2xvd09wZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTEwODQsOCArMTA3OCw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpzbG93X29wX2dl
dF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgog
ICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRp
b24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJs
b2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9i
amVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0
R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBq
aXQuc2V0dXBBcmd1bWVudHM8U2xvd09wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5m
b0dQUiwgYmFzZUpTUiwgcHJvcGVydHlHUFIpOwogICAgIHN0YXRpY19hc3NlcnQocHJlZmVycmVk
QXJndW1lbnRHUFI8U2xvd09wZXJhdGlvbiwgMT4oKSA9PSBhcmd1bWVudEdQUjEsICJOZWVkZWQg
Zm9yIGJyYW5jaCB0byBzbG93IG9wZXJhdGlvbiB2aWEgU3R1YkluZm8iKTsKICAgICBqaXQuY2Fs
bChBZGRyZXNzKGFyZ3VtZW50R1BSMSwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09w
ZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTExODUsOCArMTE3OCw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpzbG93X29wX2dldF9ieV9pZF93
aXRoX3RoaXNfY2FsbFNsb3dPCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5z
dG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwot
ICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xv
YmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwg
Q29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAg
ICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8U2xvd09wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgYmFz
ZUpTUiwgdGhpc0pTUiwgcHJvcGVydHlHUFIpOwogICAgIHN0YXRpY19hc3NlcnQocHJlZmVycmVk
QXJndW1lbnRHUFI8U2xvd09wZXJhdGlvbiwgMT4oKSA9PSBhcmd1bWVudEdQUjEsICJOZWVkZWQg
Zm9yIGJyYW5jaCB0byBzbG93IG9wZXJhdGlvbiB2aWEgU3R1YkluZm8iKTsKICAgICBqaXQuY2Fs
bChBZGRyZXNzKGFyZ3VtZW50R1BSMSwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09w
ZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTEyOTQsOCArMTI4Niw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpzbG93X29wX3B1dF9ieV9pZF9j
YWxsU2xvd09wZXJhdGlvblRoCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5z
dG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwot
ICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xv
YmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwg
Q29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAg
ICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8U2xvd09wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgdmFs
dWVKU1IsIGJhc2VKU1IsIHByb3BlcnR5R1BSKTsKICAgICBzdGF0aWNfYXNzZXJ0KHByZWZlcnJl
ZEFyZ3VtZW50R1BSPFNsb3dPcGVyYXRpb24sIDE+KCkgPT0gYXJndW1lbnRHUFIxLCAiTmVlZGVk
IGZvciBicmFuY2ggdG8gc2xvdyBvcGVyYXRpb24gdmlhIFN0dWJJbmZvIik7CiAgICAgaml0LmNh
bGwoQWRkcmVzcyhhcmd1bWVudEdQUjEsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNsb3dP
cGVyYXRpb24oKSksIE9wZXJhdGlvblB0clRhZyk7CkBAIC0xNTkyLDEwICsxNTgzLDkgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVQ6OmdlbmVyYXRlT3BSZXNvbHZl
U2NvcGVUaHVuayhWTSYgdm0pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChnbG9i
YWxPYmplY3RHUFIgPT0gSW52YWxpZEdQUlJlZykgewogICAgICAgICAgICAgZ2xvYmFsT2JqZWN0
R1BSID0gc2NyYXRjaEdQUjsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2Fs
bEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBqaXQubG9h
ZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmplY3Qo
KSksIGdsb2JhbE9iamVjdEdQUik7CisgICAgICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwg
Z2xvYmFsT2JqZWN0R1BSKTsKICAgICAgICAgfQotICAgICAgICBqaXQubG9hZFB0cihBZGRyZXNz
KGdsb2JhbE9iamVjdEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3Zhcklu
amVjdGlvbldhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKEFk
ZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBKU0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZWYXJJbmplY3Rp
b25XYXRjaHBvaW50KCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgc2xvd0Nhc2UuYXBwZW5kKGpp
dC5icmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9mZnNl
dE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0ludmFsaWRhdGVkKSkpOwogICAgIH07CiAKQEAg
LTE2MTcsOCArMTYwNyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4g
SklUOjpnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1bmsoVk0mIHZtKQogICAgICAgICBjYXNlIEds
b2JhbFByb3BlcnR5OgogICAgICAgICBjYXNlIEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlv
bkNoZWNrczogewogICAgICAgICAgICAgLy8gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVC
bG9jaygpIGxvYWRzIGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkuCi0gICAgICAgICAgICBqaXQu
bG9hZFB0cihhZGRyZXNzRm9yKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayksIHNjcmF0Y2hHUFIp
OwotICAgICAgICAgICAgaml0LmxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBDb2RlQmxvY2s6
Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkpLCByZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBs
b2FkR2xvYmFsT2JqZWN0KGppdCwgcmV0dXJuVmFsdWVHUFIpOwogICAgICAgICAgICAgZG9WYXJJ
bmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJldHVy
blZhbHVlR1BSKTsKICAgICAgICAgICAgIGppdC5sb2FkMzIoQWRkcmVzcyhtZXRhZGF0YUdQUiwg
TWV0YWRhdGE6Om9mZnNldE9mR2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaCgpKSwgc2NyYXRjaEdQ
Uik7CiAgICAgICAgICAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaDMyKE5vdEVxdWFsLCBB
ZGRyZXNzKHJldHVyblZhbHVlR1BSLCBKU0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZHbG9iYWxMZXhp
Y2FsQmluZGluZ0Vwb2NoKCkpLCBzY3JhdGNoR1BSKSk7CkBAIC0xNjMxLDggKzE2MjAsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rKFZNJiB2bSkKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZh
ckluamVjdGlvbkNoZWNrczogewogICAgICAgICAgICAgLy8gSlNTY29wZTo6Y29uc3RhbnRTY29w
ZUZvckNvZGVCbG9jaygpIGxvYWRzIGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkgZm9yIEdsb2Jh
bFZhciosCiAgICAgICAgICAgICAvLyBhbmQgY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+Z2xv
YmFsTGV4aWNhbEVudmlyb25tZW50KCkgZm9yIEdsb2JhbExleGljYWxWYXIqLgotICAgICAgICAg
ICAgaml0LmxvYWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spLCBzY3Jh
dGNoR1BSKTsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgQ29k
ZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgcmV0dXJuVmFsdWVHUFIpOworICAgICAg
ICAgICAgbG9hZEdsb2JhbE9iamVjdChqaXQsIHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgICAg
IGRvVmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUp
LCByZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgICAgICBpZiAocmVzb2x2ZVR5cGUgPT0gR2xvYmFs
TGV4aWNhbFZhciB8fCByZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVj
dGlvbkNoZWNrcykKICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihBZGRyZXNzKHJldHVyblZh
bHVlR1BSLCBKU0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQo
KSksIHJldHVyblZhbHVlR1BSKTsKQEAgLTE4MDksOSArMTc5Nyw4IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmso
Vk0mIHZtKQogICAgIGF1dG8gZG9WYXJJbmplY3Rpb25DaGVjayA9IFsmXSAoYm9vbCBuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcykgewogICAgICAgICBpZiAoIW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tz
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBqaXQubG9hZFB0cihhZGRyZXNzRm9yKENh
bGxGcmFtZVNsb3Q6OmNvZGVCbG9jayksIHNjcmF0Y2hHUFIpOwotICAgICAgICBqaXQubG9hZFB0
cihBZGRyZXNzKHNjcmF0Y2hHUFIsIENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmplY3QoKSks
IHNjcmF0Y2hHUFIpOwotICAgICAgICBqaXQubG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIE9C
SkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV92YXJJbmplY3Rpb25XYXRjaHBvaW50KSks
IHNjcmF0Y2hHUFIpOworICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgc2NyYXRjaEdQUik7
CisgICAgICAgIGppdC5sb2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgSlNHbG9iYWxPYmplY3Q6
Om9mZnNldE9mVmFySW5qZWN0aW9uV2F0Y2hwb2ludCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAg
IHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhzY3JhdGNoR1BSLCBX
YXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRl
ZCkpKTsKICAgICB9OwogCkBAIC0xODI2LDggKzE4MTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKFZNJiB2
bSkKICAgICAgICAgICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoMzIoTm90RXF1YWwsIEFk
ZHJlc3Moc2NvcGVHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIp
KTsKIAogICAgICAgICAgICAgaml0LmppdEFzc2VydChzY29wZWRMYW1iZGE8SnVtcCh2b2lkKT4o
WyZdICgpIC0+IEp1bXAgewotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3Io
Q2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAg
aml0LmxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFs
T2JqZWN0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBsb2FkR2xvYmFsT2JqZWN0
KGppdCwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGppdC5icmFuY2hQdHIo
RXF1YWwsIHNjb3BlR1BSLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgIH0pKTsKIApAQCAtMjU2
OSw3ICsyNTU1LDcgQEAgdm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZWRz
VmFySW5qZWN0aW9uQ2hlY2tzLCBHUFJSZWcgc2NyYXRjaEdQUikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgbG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BSKTsKLSAgICBsb2FkUHRyKEFkZHJlc3Mo
c2NyYXRjaEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZhckluamVjdGlv
bldhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7CisgICAgbG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hH
UFIsIEpTR2xvYmFsT2JqZWN0OjpvZmZzZXRPZlZhckluamVjdGlvbldhdGNocG9pbnQoKSksIHNj
cmF0Y2hHUFIpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoRXF1YWwsIEFkZHJlc3Moc2NyYXRj
aEdQUiwgV2F0Y2hwb2ludFNldDo6b2Zmc2V0T2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMyKElzSW52
YWxpZGF0ZWQpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCmluZGV4IDU2YTQzN2ZlMDE2MmEyNGUzOWRiNjFhZDFiMTgwMjI5ODc1MmM4
ODguLmZiZTJhMjFkYzA3NTkxNjZkZDVjMGUzMDNkZDY4Y2VjYTg5ZTA1ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtOTI0LDYgKzky
NCw5IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVP
YmplY3QgewogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV92bSk7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEpTR2xvYmFsT2JqZWN0LCBtX2dsb2JhbExleGljYWxFbnZpcm9ubWVudCk7IH0KICAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mR2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV9nbG9iYWxMZXhpY2FsQmluZGlu
Z0Vwb2NoKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWYXJJbmplY3Rpb25XYXRj
aHBvaW50KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3Zhcklu
amVjdGlvbldhdGNocG9pbnQpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlZhclJl
YWRPbmx5V2F0Y2hwb2ludCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVj
dCwgbV92YXJSZWFkT25seVdhdGNocG9pbnQpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZkZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uKTsgfQogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgSW5z
cGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRy
b2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0b3JDb250cm9sbGVyLmdldCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455845</attachid>
            <date>2022-03-26 06:50:41 -0700</date>
            <delta_ts>2022-03-29 17:09:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238414-20220326065040.patch</filename>
            <type>text/plain</type>
            <size>31805</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjBhNzhiODI1OTMxMzI5NjYwNTdjMzhkMjVmNTRkMGUzNGU3YmZlLi44OWM3ZjhkZDM4Yzk2MTVm
M2MxN2IxOTEwZmEwMWNhZDVjM2RjNGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAyMi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBjb25zdGFudHMgYnVmZmVyIHRvIGxvYWQgSlNHbG9iYWxP
YmplY3QgaW4gQmFzZWxpbmVKSVQgdGh1bmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGVzZSB0aHVua3MgYXJlIG9ubHkgY2FsbGVkIGZy
b20gQmFzZWxpbmVKSVQsIHdlIGNhbiBhc3N1bWUgY29uc3RhbnRzCisgICAgICAgIGJ1ZmZlciBy
ZWdpc3Rlci4gQW5kIHNpbmNlIHdlIGFyZSBhbHdheXMgdXNpbmcgMCBpbmRleCBmb3IgSlNHbG9i
YWxPYmplY3QsCisgICAgICAgIHdlIGNhbiBlbmNvZGUgdGhpcyBpbnRvIHRoZXNlIHNoYXJlZCB0
aHVua3MgZGlyZWN0bHkgaW5zdGVhZCBvZiBsb2FkaW5nCisgICAgICAgIENvZGVCbG9jayBwb2lu
dGVyIGZyb20gdGhlIHN0YWNrLgorCisgICAgICAgIFdlIGFsc28gZml4IHVzaW5nIE9CSkVDVF9P
RkZTRVRPRiBmb3IgSlNHbG9iYWxPYmplY3QgZGlyZWN0bHkuIFdlIHNob3VsZCB1c2UKKyAgICAg
ICAgaXQgYXMgSlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mWFhYIHRvIG1ha2UgaXQgY2xlYW4gYW5k
IG1ha2UgaXQgYW5ub3RhdGVkIHRoYXQKKyAgICAgICAgdGhlc2UgZmllbGRzIGFyZSBhY2Nlc3Nl
ZCBieSBKSVQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgVW51c2VkUG9pbnRl
ci5oIHNpbmNlIGl0IGlzIG5vIGxvbmdlciB1c2VkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpKSVQpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRWYXJSZWFkT25seUNoZWNrKToKKyAgICAgICAgKiBqaXQvSklULmg6
CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjpsb2FkQ29u
c3RhbnQpOgorICAgICAgICAoSlNDOjpKSVQ6OmxvYWRHbG9iYWxPYmplY3QpOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX292ZXJyaWRl
c19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OnZhbHVlSXNGYWxzZXlHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpKSVQ6OnZhbHVlSXNUcnV0aHlHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpKSVQ6Om9wX3Rocm93X2hhbmRsZXJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpK
SVQ6Om9wX2NoZWNrX3RyYXBzX2hhbmRsZXJHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9nZXRfYnlfdmFs
X2NhbGxTbG93T3BlcmF0aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUOjpzbG93X29wX2dldF9wcml2YXRlX25hbWVfY2FsbFNsb3dPcGVyYXRpb25UaGVu
Q2hlY2tFeGNlcHRpb25HZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVQ6OnNsb3dfb3BfcHV0
X2J5X3ZhbF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2VwdGlvbkdlbmVyYXRvcik6Cisg
ICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9wdXRfcHJpdmF0ZV9uYW1lX2NhbGxTbG93T3BlcmF0
aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUOjpzbG93
X29wX2RlbF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2VwdGlvbkdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9kZWxfYnlfdmFsX2NhbGxTbG93T3BlcmF0
aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUOjpzbG93
X29wX2dldF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2VwdGlvbkdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OkpJVDo6c2xvd19vcF9nZXRfYnlfaWRfd2l0aF90aGlzX2NhbGxT
bG93T3BlcmF0aW9uVGhlbkNoZWNrRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6
SklUOjpzbG93X29wX3B1dF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoZW5DaGVja0V4Y2VwdGlv
bkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVPcFJlc29sdmVTY29wZVRo
dW5rKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmspOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6CisgICAgICAgICogaml0
L1VudXNlZFBvaW50ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpvZmZzZXRPZlZhckluamVjdGlv
bldhdGNocG9pbnQpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZWYXJS
ZWFkT25seVdhdGNocG9pbnQpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6b2Zmc2V0
T2ZGdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik6CisKIDIwMjItMDMtMjYg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbmNs
dWRlIGFyZ3VtZW50UmVnaXN0ZXJzIGluIGlkZW50aXR5IG9mIFNsb3dQYXRoQ2FsbEtleSB3aGVu
IGNsb2JiZXJBbGxSZWdzSW5GVExJQ1Nsb3dQYXRoIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NGUyM2RmNTRkZTZmYzg4NDA0MjMzMjVlNDgxMDFkNjNl
ODdjNjgxLi4wMThhZmVkNzE2MjljZTA3MTYzNmQ5ZmZhNGNkZTdhYmZjYTk0YWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NzYsNyArODc2LDYgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBqaXQvVGFnUmVnaXN0ZXJz
TW9kZS5oCiAgICAgaml0L1RlbXBSZWdpc3RlclNldC5oCiAgICAgaml0L1RodW5rR2VuZXJhdG9y
LmgKLSAgICBqaXQvVW51c2VkUG9pbnRlci5oCiAKICAgICBsbGludC9MTEludE9wY29kZS5oCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzcwY2RiZjQ4N2E4ZjRmOThjNWE5YjUz
NGM0ZGM2Y2I1YTliYzllMy4uYTI5NjE5N2NhZjlhMTZkMWMzOTUxMjg5MDQ2YjQ2NzkxOTZmMGNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2OSw3ICsyNjksNiBAQAogCQkw
RjJERDgxMjFBQjNEOEJFMDBCQkI4RTggLyogREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyREQ4MEQx
QUIzRDhCRTAwQkJCOEU4IC8qIERGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuaCAqLzsgfTsK
IAkJMEYyREQ4MTQxQUIzRDhCRTAwQkJCOEU4IC8qIERGR0FyZ3VtZW50c1V0aWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyREQ4MEYxQUIz
RDhCRTAwQkJCOEU4IC8qIERGR0FyZ3VtZW50c1V0aWxpdGllcy5oICovOyB9OwogCQkwRjJERDgx
NTFBQjNEOEJFMDBCQkI4RTggLyogREZHRm9yQWxsS2lsbHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkREODEwMUFCM0Q4QkUwMEJCQjhFOCAvKiBE
RkdGb3JBbGxLaWxscy5oICovOyB9OwotCQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51
c2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU5ODdGMkYxNjgyOEE3RTAwM0MyRjhEIC8qIFVudXNlZFBvaW50ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjJFODkyRDE2RDAyQkFG
MDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01pbmlmaWVk
SUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
RjJGQzc3MzE2RTEyRjc0MDAzOEQ5NzYgLyogREZHRENFUGhhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkZDNzcxMTZFMTJGNkYwMDM4RDk3NiAv
KiBERkdEQ0VQaGFzZS5oICovOyB9OwogCQkwRjJGQ0NGQTE4QTYwMDcwMDAxQTI3RjggLyogREZH
R3JhcGhTYWZlcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGMkZDQ0YzMThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5oICov
OyB9OwpAQCAtNDIxMyw3ICs0MjEyLDYgQEAKIAkJNjU4ODI0QjAxRTVDRkRGNDAwRkI3MzU5IC8q
IENvbmZpZ0ZpbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29u
ZmlnRmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OEQzQTU1MTk2Mzgy
NjgwMDNDNDVENiAvKiBWTUVudHJ5UmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bGluZUVuZGluZyA9IDA7IHBhdGggPSBWTUVudHJ5UmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2Jq
Y3BwOyB9OwogCQk2NTk4N0YyQzE2N0ZFODRCMDAzQzJGOEQgLyogREZHT1NSRXhpdENvbXBpbGF0
aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdPU1JFeGl0Q29t
cGlsYXRpb25JbmZvLmg7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyog
VW51c2VkUG9pbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbnVzZWRQ
b2ludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OUNEQTU5MUY2NzUwOTgw
MEQzRTUzRiAvKiBZYXJyVW5pY29kZVByb3BlcnRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gWWFyclVuaWNvZGVQcm9wZXJ0aWVzLmNwcDsgcGF0aCA9IHlhcnIv
WWFyclVuaWNvZGVQcm9wZXJ0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU5Q0RBNUExRjY3NTA5ODAwRDNFNTNGIC8qIFlhcnJVbmljb2RlUHJvcGVydGllcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBZYXJyVW5pY29kZVByb3BlcnRpZXMuaDsgcGF0
aCA9IHlhcnIvWWFyclVuaWNvZGVQcm9wZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTY1QTk0NjEzMUM4RTlGMjAwMEE3MjA5QSAvKiBnZW5lcmF0ZVlhcnJDYW5vbmljYWxp
emVVbmljb2RlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBuYW1lID0gZ2VuZXJhdGVZ
YXJyQ2Fub25pY2FsaXplVW5pY29kZTsgcGF0aCA9IHlhcnIvZ2VuZXJhdGVZYXJyQ2Fub25pY2Fs
aXplVW5pY29kZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2ODAsNyArNjY3OCw2
IEBACiAJCQkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi8s
CiAJCQkJQTczODY1NTIxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5jcHAgKi8s
CiAJCQkJQTczODY1NTMxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5oICovLAot
CQkJCTY1OTg3RjJGMTY4MjhBN0UwMDNDMkY4RCAvKiBVbnVzZWRQb2ludGVyLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGppdDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTIwNSw3
ICsxMTIwMiw2IEBACiAJCQkJMTRBRDkxMjUxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkTW9k
dWxlUHJvZ3JhbUNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRBRDkxMjYxRENBOUZB
NDAwMTRGOUZFIC8qIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTRBQjY2NzYxREVDRjQwOTAwQTU2QzI2IC8qIFVubGlua2VkU291cmNlQ29kZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEIxMUJENTk5NEUwMEY0NTc1QyAvKiBVcGRhdGVD
b250ZW50cy5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGOTYzQjM4MTNGQzZGRTkwMDAyRDlCMiAv
KiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDI2QTQ4MTQ2MENCQjMwMDEz
MUY4RiAvKiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAppbmRleCBlOWMwZWNjMzBlYWNjNjhjNTU5ZjhhYzQ2M2UxMDYyMjMxZGRlYjZhLi5m
MTIzNTU3ODIwYzM0Zjg3NjJjMThhOTUwM2YzYTk2ZjdiNGM2NDEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCkBAIC03Nyw3ICs3Nyw4IEBAIEpJVDo6SklUKFZNJiB2bSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJ5dGVjb2RlSW5kZXggbG9vcE9TUkVudHJ5Qnl0ZWNvZGVJbmRleCkKICAg
ICAsIG1fc2hvdWxkRW1pdFByb2ZpbGluZyhmYWxzZSkKICAgICAsIG1fbG9vcE9TUkVudHJ5Qnl0
ZWNvZGVJbmRleChsb29wT1NSRW50cnlCeXRlY29kZUluZGV4KQogewotICAgIG1fZ2xvYmFsT2Jq
ZWN0Q29uc3RhbnQgPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFudFBvb2w6OlR5cGU6Okds
b2JhbE9iamVjdCk7CisgICAgYXV0byBnbG9iYWxPYmplY3RDb25zdGFudCA9IGFkZFRvQ29uc3Rh
bnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6R2xvYmFsT2JqZWN0KTsKKyAgICBBU1NFUlRf
VU5VU0VEKGdsb2JhbE9iamVjdENvbnN0YW50LCBnbG9iYWxPYmplY3RDb25zdGFudCA9PSBzX2ds
b2JhbE9iamVjdENvbnN0YW50KTsKICAgICBtX3Byb2ZpbGVkQ29kZUJsb2NrID0gY29kZUJsb2Nr
OwogICAgIG1fdW5saW5rZWRDb2RlQmxvY2sgPSBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJsb2Nr
KCk7CiB9CkBAIC0xMzcsNyArMTM4LDcgQEAgdm9pZCBKSVQ6OmVtaXRWYXJSZWFkT25seUNoZWNr
KFJlc29sdmVUeXBlIHJlc29sdmVUeXBlLCBHUFJSZWcgc2NyYXRjaEdQUikKIHsKICAgICBpZiAo
cmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyIHx8IHJlc29sdmVUeXBlID09IEdsb2JhbFZhcldpdGhW
YXJJbmplY3Rpb25DaGVja3MpIHsKICAgICAgICAgbG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BS
KTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIE9CSkVDVF9PRkZTRVRPRihK
U0dsb2JhbE9iamVjdCwgbV92YXJSZWFkT25seVdhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7Cisg
ICAgICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBKU0dsb2JhbE9iamVjdDo6b2Zmc2V0
T2ZWYXJSZWFkT25seVdhdGNocG9pbnQoKSksIHNjcmF0Y2hHUFIpOwogICAgICAgICBhZGRTbG93
Q2FzZShicmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9m
ZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0ludmFsaWRhdGVkKSkpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IGI4ZmRhNWQxYjQzMTVlOWY3ZDcwNGM0NmFhYTVh
NWIxYmIwMzQ0ZmIuLmU1YTlkNGNjMzQyODg3NDJiZjdiMmExYzRmNTQ0MWVjYWYyZmMyOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNDcsNyArNDcsNiBAQAogI2luY2x1ZGUgIkpTSW50
ZXJmYWNlSklULmgiCiAjaW5jbHVkZSAiTExJbnREYXRhLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVP
cmlnaW5NYXAuaCIKLSNpbmNsdWRlICJVbnVzZWRQb2ludGVyLmgiCiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTE2OSwxNiArMTY4LDEwIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Q7CiAgICAg
ICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyOjpMYWJlbDsKIAotICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnRwdHJfdCBwYXRjaEdldEJ5SWREZWZhdWx0U3RydWN0dXJlID0gdW51c2VkUG9pbnRl
cjsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgcGF0Y2hHZXRCeUlkRGVmYXVsdE9mZnNl
dCA9IDA7Ci0gICAgICAgIC8vIE1hZ2ljIG51bWJlciAtIGluaXRpYWwgb2Zmc2V0IGNhbm5vdCBi
ZSByZXByZXNlbnRhYmxlIGFzIGEgc2lnbmVkIDhiaXQgdmFsdWUsIG9yIHRoZSBYODZBc3NlbWJs
ZXIKLSAgICAgICAgLy8gd2lsbCBjb21wcmVzcyB0aGUgZGlzcGxhY2VtZW50LCBhbmQgd2UgbWF5
IG5vdCBiZSBhYmxlIHRvIGZpdCBhIHBhdGNoZWQgb2Zmc2V0LgotICAgICAgICBzdGF0aWMgY29u
c3RleHByIGludCBwYXRjaFB1dEJ5SWREZWZhdWx0T2Zmc2V0ID0gMjU2OwotCiAgICAgICAgIHVz
aW5nIEJhc2UgPSBKU0ludGVyZmFjZUpJVDsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgSklUKFZN
JiwgQ29kZUJsb2NrKiA9IG51bGxwdHIsIEJ5dGVjb2RlSW5kZXggbG9vcE9TUkVudHJ5Qnl0ZWNv
ZGVPZmZzZXQgPSBCeXRlY29kZUluZGV4KDApKTsKKyAgICAgICAgSklUKFZNJiwgQ29kZUJsb2Nr
KiwgQnl0ZWNvZGVJbmRleCBsb29wT1NSRW50cnlCeXRlY29kZU9mZnNldCk7CiAgICAgICAgIH5K
SVQoKTsKIAogICAgICAgICBWTSYgdm0oKSB7IHJldHVybiAqSlNJbnRlcmZhY2VKSVQ6OnZtKCk7
IH0KQEAgLTE4OSw5ICsxODIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIGRv
TWFpblRocmVhZFByZXBhcmF0aW9uQmVmb3JlQ29tcGlsZSgpOwogICAgICAgICAKLSAgICAgICAg
c3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0LCBCeXRlY29kZUluZGV4IGJ5dGVjb2Rl
T2Zmc2V0ID0gQnl0ZWNvZGVJbmRleCgwKSkKKyAgICAgICAgc3RhdGljIENvbXBpbGF0aW9uUmVz
dWx0IGNvbXBpbGUoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25F
ZmZvcnQgZWZmb3J0KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSklUKHZtLCBjb2Rl
QmxvY2ssIGJ5dGVjb2RlT2Zmc2V0KS5wcml2YXRlQ29tcGlsZShjb2RlQmxvY2ssIGVmZm9ydCk7
CisgICAgICAgICAgICByZXR1cm4gSklUKHZtLCBjb2RlQmxvY2ssIEJ5dGVjb2RlSW5kZXgoMCkp
LnByaXZhdGVDb21waWxlKGNvZGVCbG9jaywgZWZmb3J0KTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoVW5saW5rZWRDb2RlQmxvY2sq
KTsKQEAgLTIwNCw2ICsxOTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBzX21ldGFkYXRhR1BSID0gTExJbnQ6OlJlZ2lzdGVyczo6bWV0YWRh
dGFUYWJsZUdQUjsKICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgc19jb25zdGFudHNH
UFIgPSBMTEludDo6UmVnaXN0ZXJzOjpwYkdQUjsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBK
SVRDb25zdGFudFBvb2w6OkNvbnN0YW50IHNfZ2xvYmFsT2JqZWN0Q29uc3RhbnQgeyAwIH07CiAK
ICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlTWFpblBhc3MoKTsKQEAg
LTI1Niw2ICsyNTAsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgbG9hZENvbnN0
YW50KHVuc2lnbmVkIGNvbnN0YW50SW5kZXgsIEdQUlJlZyk7CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdm9pZCBsb2FkR2xvYmFsT2JqZWN0KEdQUlJlZyk7CisKKyAgICAgICAgLy8gQXNzdW1pbmcg
c19jb25zdGFudHNHUFIgaXMgYXZhaWxhYmxlLgorICAgICAgICBzdGF0aWMgdm9pZCBsb2FkR2xv
YmFsT2JqZWN0KENDYWxsSGVscGVycyYsIEdQUlJlZyk7CisgICAgICAgIHN0YXRpYyB2b2lkIGxv
YWRDb25zdGFudChDQ2FsbEhlbHBlcnMmLCB1bnNpZ25lZCBjb25zdGFudEluZGV4LCBHUFJSZWcp
OworCiAgICAgICAgIHZvaWQgbG9hZENvZGVCbG9ja0NvbnN0YW50KFZpcnR1YWxSZWdpc3Rlciwg
SlNWYWx1ZVJlZ3MpOwogICAgICAgICB2b2lkIGxvYWRDb2RlQmxvY2tDb25zdGFudFBheWxvYWQo
VmlydHVhbFJlZ2lzdGVyLCBSZWdpc3RlcklEKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAt
OTYyLDcgKzk2MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWZQdHI8QmFzZWxpbmVK
SVRDb2RlPiBtX2ppdENvZGU7CiAKICAgICAgICAgVmVjdG9yPEpJVENvbnN0YW50UG9vbDo6VmFs
dWU+IG1fY29uc3RhbnRQb29sOwotICAgICAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IG1f
Z2xvYmFsT2JqZWN0Q29uc3RhbnQgeyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4
KCkgfTsKICAgICAgICAgU2VnbWVudGVkVmVjdG9yPFVubGlua2VkQ2FsbExpbmtJbmZvPiBtX3Vu
bGlua2VkQ2FsbHM7CiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxVbmxpbmtlZFN0cnVjdHVyZVN0
dWJJbmZvPiBtX3VubGlua2VkU3R1YkluZm9zOwogICAgICAgICBGaXhlZFZlY3RvcjxTaW1wbGVK
dW1wVGFibGU+IG1fc3dpdGNoSnVtcFRhYmxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVzLmgKaW5kZXggYmZmYjJmNGMzMDMwZWVlZTE0Zjg5MGVmODFjYTBlM2U4MTk4N2NkNi4u
YmQzN2NhZGIzMWQ1NDI5NmQ1Zjc5NDdjN2U0MDY2NDY0ZjEzMTgzMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTQ5MywxNCArNDkzLDI0IEBAIEFMV0FZU19JTkxJ
TkUgdm9pZCBKSVQ6Om1hdGVyaWFsaXplUG9pbnRlckludG9NZXRhZGF0YShjb25zdCBCeXRlY29k
ZSYgYnl0ZWNvZGUsCiAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX3Byb2ZpbGVkQ29kZUJsb2Nr
LT5tZXRhZGF0YVRhYmxlKCktPm9mZnNldEluTWV0YWRhdGFUYWJsZShieXRlY29kZSkgKyBvZmZz
ZXQpLCBzX21ldGFkYXRhR1BSLCByZXN1bHQpOwogfQogCitBTFdBWVNfSU5MSU5FIHZvaWQgSklU
Ojpsb2FkQ29uc3RhbnQoQ0NhbGxIZWxwZXJzJiBqaXQsIEpJVENvbnN0YW50UG9vbDo6Q29uc3Rh
bnQgY29uc3RhbnRJbmRleCwgR1BSUmVnIHJlc3VsdCkKK3sKKyAgICBqaXQubG9hZFB0cihBZGRy
ZXNzKHNfY29uc3RhbnRzR1BSLCBCYXNlbGluZUpJVERhdGE6Om9mZnNldE9mRGF0YSgpICsgc3Rh
dGljX2Nhc3Q8dWludHB0cl90Pihjb25zdGFudEluZGV4KSAqIHNpemVvZih2b2lkKikpLCByZXN1
bHQpOworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpsb2FkR2xvYmFsT2JqZWN0KENDYWxs
SGVscGVycyYgaml0LCBHUFJSZWcgcmVzdWx0KQoreworICAgIGxvYWRDb25zdGFudChqaXQsIHNf
Z2xvYmFsT2JqZWN0Q29uc3RhbnQsIHJlc3VsdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9pZCBK
SVQ6OmxvYWRDb25zdGFudChKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IGNvbnN0YW50SW5kZXgs
IEdQUlJlZyByZXN1bHQpCiB7Ci0gICAgbG9hZFB0cihBZGRyZXNzKHNfY29uc3RhbnRzR1BSLCBC
YXNlbGluZUpJVERhdGE6Om9mZnNldE9mRGF0YSgpICsgc3RhdGljX2Nhc3Q8dWludHB0cl90Pihj
b25zdGFudEluZGV4KSAqIHNpemVvZih2b2lkKikpLCByZXN1bHQpOworICAgIGxvYWRDb25zdGFu
dCgqdGhpcywgY29uc3RhbnRJbmRleCwgcmVzdWx0KTsKIH0KIAogQUxXQVlTX0lOTElORSB2b2lk
IEpJVDo6bG9hZEdsb2JhbE9iamVjdChHUFJSZWcgcmVzdWx0KQogewotICAgIGxvYWRDb25zdGFu
dChtX2dsb2JhbE9iamVjdENvbnN0YW50LCByZXN1bHQpOworICAgIGxvYWRHbG9iYWxPYmplY3Qo
KnRoaXMsIHJlc3VsdCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgbG9hZEFkZHJP
ZkNvZGVCbG9ja0NvbnN0YW50QnVmZmVyKEpJVCAmaml0LCBHUFJSZWcgZHN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggNWI4NWM3YWM1MTdhNzAyZGNmZDdh
NjJlZGYwOTIxMWEzZDVkMzMzZS4uOWNmN2Q1ZDlmYmY5ODY3NjhmNzU3OWU2YmFkZGJjYmQyMjc1
MGE1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xMzQs
NyArMTM0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZShjb25z
dCBKU0luc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24KICAgICAvLyBXZSBkb24ndCBqdW1w
IGlmIHdlIGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCiAgICAgbW92ZShU
cnVzdGVkSW1tMzIoMSksIHJlZ1QwKTsKICAgICBsb2FkR2xvYmFsT2JqZWN0KHJlZ1QxKTsKLSAg
ICBKdW1wIGN1c3RvbUhhc0luc3RhbmNlVmFsdWUgPSBicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Qy
LCBBZGRyZXNzKHJlZ1QxLCBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fZnVuY3Rp
b25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pKSk7CisgICAgSnVtcCBjdXN0b21IYXNJ
bnN0YW5jZVZhbHVlID0gYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMiwgQWRkcmVzcyhyZWdUMSwg
SlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mRnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVu
Y3Rpb24oKSkpOwogICAgIC8vIFdlIGtub3cgdGhhdCBjb25zdHJ1Y3RvciBpcyBhbiBvYmplY3Qg
ZnJvbSB0aGUgd2F5IGJ5dGVjb2RlIGlzIGVtaXR0ZWQgZm9yIGluc3RhbmNlb2YgZXhwcmVzc2lv
bnMuCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlclBheWxvYWQoY29uc3RydWN0b3IsIHJlZ1Qy
KTsKICAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlJyBpLmUuIHRoZSBvYmplY3QgaXMgbm90IGEgQy1BUEkgdXNlciBub3IgYSBib3VuZCBm
dW5jdGlvbi4KQEAgLTQ3Nyw4ICs0NzcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IEpJVDo6dmFsdWVJc0ZhbHNleUdlbmVyYXRvcihWTSYgdm0pCiAKICAgICBqaXQu
dGFnUmV0dXJuQWRkcmVzcygpOwogCi0gICAgaml0LmxvYWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJh
bWVTbG90Ojpjb2RlQmxvY2spLCBnbG9iYWxPYmplY3RHUFIpOwotICAgIGppdC5sb2FkUHRyKEFk
ZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkp
LCBnbG9iYWxPYmplY3RHUFIpOworICAgIGxvYWRHbG9iYWxPYmplY3Qoaml0LCBnbG9iYWxPYmpl
Y3RHUFIpOwogICAgIGppdC5tb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVnVDApOwogICAgIGF1dG8g
aXNGYWxzZXkgPSBqaXQuYnJhbmNoSWZGYWxzZXkodm0sIHZhbHVlSlNSLCBzY3JhdGNoMUdQUiwg
c2NyYXRjaDJHUFIsIGZwUmVnVDAsIGZwUmVnVDEsIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQubW92ZShUcnVzdGVkSW1tMzIoMCks
IHJlZ1QwKTsKQEAgLTY2NCw4ICs2NjMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IEpJVDo6dmFsdWVJc1RydXRoeUdlbmVyYXRvcihWTSYgdm0pCiAKICAgICBqaXQu
dGFnUmV0dXJuQWRkcmVzcygpOwogCi0gICAgaml0LmxvYWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJh
bWVTbG90Ojpjb2RlQmxvY2spLCBnbG9iYWxPYmplY3RHUFIpOwotICAgIGppdC5sb2FkUHRyKEFk
ZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkp
LCBnbG9iYWxPYmplY3RHUFIpOworICAgIGxvYWRHbG9iYWxPYmplY3Qoaml0LCBnbG9iYWxPYmpl
Y3RHUFIpOwogICAgIGppdC5tb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVnVDApOwogICAgIGF1dG8g
aXNUcnV0aHkgPSBqaXQuYnJhbmNoSWZUcnV0aHkodm0sIHZhbHVlSlNSLCBzY3JhdGNoMUdQUiwg
c2NyYXRjaDJHUFIsIGZwUmVnVDAsIGZwUmVnVDEsIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQubW92ZShUcnVzdGVkSW1tMzIoMCks
IHJlZ1QwKTsKQEAgLTczNSw4ICs3MzMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IEpJVDo6b3BfdGhyb3dfaGFuZGxlckdlbmVyYXRvcihWTSYgdm0pCiAgICAgLy8g
Q2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0
YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBq
aXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3Io
Q2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9h
ZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9i
amVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xv
YmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
VGhyb3cpPihnbG9iYWxPYmplY3RHUFIsIHRocm93blZhbHVlSlNSKTsKICAgICBDYWxsIG9wZXJh
dGlvbiA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAKQEAgLTE1NjUsOCArMTU2Miw3IEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpvcF9jaGVja190cmFw
c19oYW5kbGVyR2VuZXJhdG9yKFZNJiB2CiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAg
IGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24o
dm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2Nr
KSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVj
dEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BS
KTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uSGFuZGxlVHJhcHMpPihnbG9iYWxPYmpl
Y3RHUFIpOwogICAgIENDYWxsSGVscGVyczo6Q2FsbCBvcGVyYXRpb24gPSBqaXQuY2FsbChPcGVy
YXRpb25QdHJUYWcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCmluZGV4IGM4YjhiMGJmM2RlMWYzY2ZiN2JkZDliMDFjMjdhNDc2Nzk5OTM3
ZjguLmVkYmQ4NTllNzRkMzA4ZTk4MmZhNzZkOGI1MTQ5OGMyMDZlYWZmYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xNDksOCAr
MTQ5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVQ6OnNsb3df
b3BfZ2V0X2J5X3ZhbF9jYWxsU2xvd09wZXJhdGlvblQKICAgICAvLyBDYWxsIHNsb3cgb3BlcmF0
aW9uCiAgICAgaml0LnN0b3JlMzIoYnl0ZWNvZGVPZmZzZXRHUFIsIHRhZ0ZvcihDYWxsRnJhbWVT
bG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpOwogICAgIGppdC5wcmVwYXJlQ2FsbE9w
ZXJhdGlvbih2bSk7Ci0gICAgaml0LmxvYWRQdHIoYWRkcmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpj
b2RlQmxvY2spLCBnbG9iYWxPYmplY3RHUFIpOwotICAgIGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xv
YmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxP
YmplY3RHUFIpOworICAgIGxvYWRHbG9iYWxPYmplY3Qoaml0LCBnbG9iYWxPYmplY3RHUFIpOwog
ICAgIGppdC5zZXR1cEFyZ3VtZW50czxTbG93T3BlcmF0aW9uPihnbG9iYWxPYmplY3RHUFIsIHN0
dWJJbmZvR1BSLCBwcm9maWxlR1BSLCBiYXNlSlNSLCBwcm9wZXJ0eUpTUik7CiAgICAgc3RhdGlj
X2Fzc2VydChwcmVmZXJyZWRBcmd1bWVudEdQUjxTbG93T3BlcmF0aW9uLCAxPigpID09IGFyZ3Vt
ZW50R1BSMSwgIk5lZWRlZCBmb3IgYnJhbmNoIHRvIHNsb3cgb3BlcmF0aW9uIHZpYSBTdHViSW5m
byIpOwogICAgIGppdC5jYWxsKEFkZHJlc3MoYXJndW1lbnRHUFIxLCBTdHJ1Y3R1cmVTdHViSW5m
bzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBPcGVyYXRpb25QdHJUYWcpOwpAQCAtMjQ0LDgg
KzI0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpzbG93
X29wX2dldF9wcml2YXRlX25hbWVfY2FsbFNsb3dPcGVyCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJh
dGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1l
U2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxP
cGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6
Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGds
b2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFs
T2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsK
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8U2xvd09wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBz
dHViSW5mb0dQUiwgYmFzZUpTUiwgcHJvcGVydHlKU1IpOwogICAgIHN0YXRpY19hc3NlcnQocHJl
ZmVycmVkQXJndW1lbnRHUFI8U2xvd09wZXJhdGlvbiwgMT4oKSA9PSBhcmd1bWVudEdQUjEsICJO
ZWVkZWQgZm9yIGJyYW5jaCB0byBzbG93IG9wZXJhdGlvbiB2aWEgU3R1YkluZm8iKTsKICAgICBq
aXQuY2FsbChBZGRyZXNzKGFyZ3VtZW50R1BSMSwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9m
U2xvd09wZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTQ2Nyw4ICs0NjUsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6c2xvd19vcF9wdXRfYnlf
dmFsX2NhbGxTbG93T3BlcmF0aW9uVAogICAgIC8vIENhbGwgc2xvdyBvcGVyYXRpb24KICAgICBq
aXQuc3RvcmUzMihieXRlY29kZU9mZnNldEdQUiwgdGFnRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzKSk7CiAgICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZt
KTsKLSAgICBqaXQubG9hZFB0cihhZGRyZXNzRm9yKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayks
IGdsb2JhbE9iamVjdEdQUik7Ci0gICAgaml0LmxvYWRQdHIoQWRkcmVzcyhnbG9iYWxPYmplY3RH
UFIsIENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmplY3QoKSksIGdsb2JhbE9iamVjdEdQUik7
CisgICAgbG9hZEdsb2JhbE9iamVjdChqaXQsIGdsb2JhbE9iamVjdEdQUik7CiAgICAgaml0LnNl
dHVwQXJndW1lbnRzRm9ySW5kaXJlY3RDYWxsPFNsb3dPcGVyYXRvaW4+KHN0dWJJbmZvR1BSLAog
ICAgICAgICBnbG9iYWxPYmplY3RHUFIsIGJhc2VKU1IsIHByb3BlcnR5SlNSLCB2YWx1ZUpTUiwg
c3R1YkluZm9HUFIsIHByb2ZpbGVHUFIpOwogICAgIGppdC5jYWxsKEFkZHJlc3Mobm9uQXJnR1BS
MCwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgT3BlcmF0aW9u
UHRyVGFnKTsKQEAgLTU2NSw4ICs1NjIsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IEpJVDo6c2xvd19vcF9wdXRfcHJpdmF0ZV9uYW1lX2NhbGxTbG93T3BlcgogICAg
IC8vIENhbGwgc2xvdyBvcGVyYXRpb24KICAgICBqaXQuc3RvcmUzMihieXRlY29kZU9mZnNldEdQ
UiwgdGFnRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSk7CiAg
ICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsKLSAgICBqaXQubG9hZFB0cihhZGRyZXNz
Rm9yKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayksIGdsb2JhbE9iamVjdEdQUik7Ci0gICAgaml0
LmxvYWRQdHIoQWRkcmVzcyhnbG9iYWxPYmplY3RHUFIsIENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9i
YWxPYmplY3QoKSksIGdsb2JhbE9iamVjdEdQUik7CisgICAgbG9hZEdsb2JhbE9iamVjdChqaXQs
IGdsb2JhbE9iamVjdEdQUik7CiAgICAgLy8gTG9hZGluZyBudWxscHRyIHRvIHRoaXMgcmVnaXN0
ZXIgaXMgbmVjZXNzYXJ5IGZvciBzZXR1cEFyZ3VtZW50c0ZvckluZGlyZWN0Q2FsbAogICAgIC8v
IHRvIG5vdCBjbG9iYmVyIGdsb2JhbE9iamVjdEdQUiBvbiBBUk1fVEhVTUIyLCBhbmQgaXMgb3Ro
ZXJ3aXNlIGhhcm1sZXNzLgogICAgIGppdC5tb3ZlKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIHBy
b2ZpbGVHUFIpOwpAQCAtNzQ1LDggKzc0MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRU
aHVua1B0clRhZz4gSklUOjpzbG93X29wX2RlbF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoCiAg
ICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0
R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsK
ICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJl
c3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBq
aXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkds
b2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGpp
dCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8U2xvd09wZXJhdGlv
bj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgYmFzZUpTUiwgcHJvcGVydHlHUFIsIGVj
bWFNb2RlR1BSKTsKICAgICBzdGF0aWNfYXNzZXJ0KHByZWZlcnJlZEFyZ3VtZW50R1BSPFNsb3dP
cGVyYXRpb24sIDE+KCkgPT0gYXJndW1lbnRHUFIxLCAiTmVlZGVkIGZvciBicmFuY2ggdG8gc2xv
dyBvcGVyYXRpb24gdmlhIFN0dWJJbmZvIik7CiAgICAgaml0LmNhbGwoQWRkcmVzcyhhcmd1bWVu
dEdQUjEsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNsb3dPcGVyYXRpb24oKSksIE9wZXJh
dGlvblB0clRhZyk7CkBAIC04NTcsOCArODUyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJ
VFRodW5rUHRyVGFnPiBKSVQ6OnNsb3dfb3BfZGVsX2J5X3ZhbF9jYWxsU2xvd09wZXJhdGlvblQK
ICAgICAvLyBDYWxsIHNsb3cgb3BlcmF0aW9uCiAgICAgaml0LnN0b3JlMzIoYnl0ZWNvZGVPZmZz
ZXRHUFIsIHRhZ0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykp
OwogICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7Ci0gICAgaml0LmxvYWRQdHIoYWRk
cmVzc0ZvcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spLCBnbG9iYWxPYmplY3RHUFIpOwotICAg
IGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBDb2RlQmxvY2s6Om9mZnNldE9m
R2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3RHUFIpOworICAgIGxvYWRHbG9iYWxPYmplY3Qo
aml0LCBnbG9iYWxPYmplY3RHUFIpOwogICAgIGppdC5zZXR1cEFyZ3VtZW50czxTbG93T3BlcmF0
aW9uPihnbG9iYWxPYmplY3RHUFIsIHN0dWJJbmZvR1BSLCBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwg
ZWNtYU1vZGVHUFIpOwogICAgIHN0YXRpY19hc3NlcnQocHJlZmVycmVkQXJndW1lbnRHUFI8U2xv
d09wZXJhdGlvbiwgMT4oKSA9PSBhcmd1bWVudEdQUjEsICJOZWVkZWQgZm9yIGJyYW5jaCB0byBz
bG93IG9wZXJhdGlvbiB2aWEgU3R1YkluZm8iKTsKICAgICBqaXQuY2FsbChBZGRyZXNzKGFyZ3Vt
ZW50R1BSMSwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgT3Bl
cmF0aW9uUHRyVGFnKTsKQEAgLTEwODQsOCArMTA3OCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxKSVRUaHVua1B0clRhZz4gSklUOjpzbG93X29wX2dldF9ieV9pZF9jYWxsU2xvd09wZXJhdGlv
blRoCiAgICAgLy8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2Rl
T2Zmc2V0R1BSLCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMpKTsKICAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRy
KGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsK
LSAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZz
ZXRPZkdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2Jq
ZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8U2xvd09w
ZXJhdGlvbj4oZ2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgYmFzZUpTUiwgcHJvcGVydHlH
UFIpOwogICAgIHN0YXRpY19hc3NlcnQocHJlZmVycmVkQXJndW1lbnRHUFI8U2xvd09wZXJhdGlv
biwgMT4oKSA9PSBhcmd1bWVudEdQUjEsICJOZWVkZWQgZm9yIGJyYW5jaCB0byBzbG93IG9wZXJh
dGlvbiB2aWEgU3R1YkluZm8iKTsKICAgICBqaXQuY2FsbChBZGRyZXNzKGFyZ3VtZW50R1BSMSwg
U3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRy
VGFnKTsKQEAgLTExODUsOCArMTE3OCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVu
a1B0clRhZz4gSklUOjpzbG93X29wX2dldF9ieV9pZF93aXRoX3RoaXNfY2FsbFNsb3dPCiAgICAg
Ly8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BS
LCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAg
ICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NG
b3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQu
bG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2Jh
bE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwg
Z2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8U2xvd09wZXJhdGlvbj4o
Z2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgYmFzZUpTUiwgdGhpc0pTUiwgcHJvcGVydHlH
UFIpOwogICAgIHN0YXRpY19hc3NlcnQocHJlZmVycmVkQXJndW1lbnRHUFI8U2xvd09wZXJhdGlv
biwgMT4oKSA9PSBhcmd1bWVudEdQUjEsICJOZWVkZWQgZm9yIGJyYW5jaCB0byBzbG93IG9wZXJh
dGlvbiB2aWEgU3R1YkluZm8iKTsKICAgICBqaXQuY2FsbChBZGRyZXNzKGFyZ3VtZW50R1BSMSwg
U3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgT3BlcmF0aW9uUHRy
VGFnKTsKQEAgLTEyOTQsOCArMTI4Niw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVu
a1B0clRhZz4gSklUOjpzbG93X29wX3B1dF9ieV9pZF9jYWxsU2xvd09wZXJhdGlvblRoCiAgICAg
Ly8gQ2FsbCBzbG93IG9wZXJhdGlvbgogICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0R1BS
LCB0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAg
ICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOwotICAgIGppdC5sb2FkUHRyKGFkZHJlc3NG
b3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwgZ2xvYmFsT2JqZWN0R1BSKTsKLSAgICBqaXQu
bG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2Jh
bE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0R1BSKTsKKyAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwg
Z2xvYmFsT2JqZWN0R1BSKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8U2xvd09wZXJhdGlvbj4o
Z2xvYmFsT2JqZWN0R1BSLCBzdHViSW5mb0dQUiwgdmFsdWVKU1IsIGJhc2VKU1IsIHByb3BlcnR5
R1BSKTsKICAgICBzdGF0aWNfYXNzZXJ0KHByZWZlcnJlZEFyZ3VtZW50R1BSPFNsb3dPcGVyYXRp
b24sIDE+KCkgPT0gYXJndW1lbnRHUFIxLCAiTmVlZGVkIGZvciBicmFuY2ggdG8gc2xvdyBvcGVy
YXRpb24gdmlhIFN0dWJJbmZvIik7CiAgICAgaml0LmNhbGwoQWRkcmVzcyhhcmd1bWVudEdQUjEs
IFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNsb3dPcGVyYXRpb24oKSksIE9wZXJhdGlvblB0
clRhZyk7CkBAIC0xNTkyLDEwICsxNTgzLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRo
dW5rUHRyVGFnPiBKSVQ6OmdlbmVyYXRlT3BSZXNvbHZlU2NvcGVUaHVuayhWTSYgdm0pCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChnbG9iYWxPYmplY3RHUFIgPT0gSW52YWxpZEdQ
UlJlZykgewogICAgICAgICAgICAgZ2xvYmFsT2JqZWN0R1BSID0gc2NyYXRjaEdQUjsKLSAgICAg
ICAgICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSwg
c2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBqaXQubG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIs
IENvZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmplY3QoKSksIGdsb2JhbE9iamVjdEdQUik7Cisg
ICAgICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgZ2xvYmFsT2JqZWN0R1BSKTsKICAgICAg
ICAgfQotICAgICAgICBqaXQubG9hZFB0cihBZGRyZXNzKGdsb2JhbE9iamVjdEdQUiwgT0JKRUNU
X09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQpKSwgc2Ny
YXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKEFkZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBK
U0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZWYXJJbmplY3Rpb25XYXRjaHBvaW50KCkpLCBzY3JhdGNo
R1BSKTsKICAgICAgICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5icmFuY2g4KEVxdWFsLCBBZGRyZXNz
KHNjcmF0Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9mZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0z
MihJc0ludmFsaWRhdGVkKSkpOwogICAgIH07CiAKQEAgLTE2MTcsOCArMTYwNyw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2ZVNj
b3BlVGh1bmsoVk0mIHZtKQogICAgICAgICBjYXNlIEdsb2JhbFByb3BlcnR5OgogICAgICAgICBj
YXNlIEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrczogewogICAgICAgICAgICAg
Ly8gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jaygpIGxvYWRzIGNvZGVCbG9jay0+
Z2xvYmFsT2JqZWN0KCkuCi0gICAgICAgICAgICBqaXQubG9hZFB0cihhZGRyZXNzRm9yKENhbGxG
cmFtZVNsb3Q6OmNvZGVCbG9jayksIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgaml0LmxvYWRQ
dHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkp
LCByZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgcmV0
dXJuVmFsdWVHUFIpOwogICAgICAgICAgICAgZG9WYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zhcklu
amVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgICAg
IGppdC5sb2FkMzIoQWRkcmVzcyhtZXRhZGF0YUdQUiwgTWV0YWRhdGE6Om9mZnNldE9mR2xvYmFs
TGV4aWNhbEJpbmRpbmdFcG9jaCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICBzbG93Q2Fz
ZS5hcHBlbmQoaml0LmJyYW5jaDMyKE5vdEVxdWFsLCBBZGRyZXNzKHJldHVyblZhbHVlR1BSLCBK
U0dsb2JhbE9iamVjdDo6b2Zmc2V0T2ZHbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoKCkpLCBzY3Jh
dGNoR1BSKSk7CkBAIC0xNjMxLDggKzE2MjAsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklU
VGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rKFZNJiB2bSkKICAg
ICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczogewogICAg
ICAgICAgICAgLy8gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jaygpIGxvYWRzIGNv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkgZm9yIEdsb2JhbFZhciosCiAgICAgICAgICAgICAvLyBh
bmQgY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkg
Zm9yIEdsb2JhbExleGljYWxWYXIqLgotICAgICAgICAgICAgaml0LmxvYWRQdHIoYWRkcmVzc0Zv
cihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIGpp
dC5sb2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgQ29kZUJsb2NrOjpvZmZzZXRPZkdsb2JhbE9i
amVjdCgpKSwgcmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgbG9hZEdsb2JhbE9iamVjdChq
aXQsIHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgICAgIGRvVmFySW5qZWN0aW9uQ2hlY2sobmVl
ZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCByZXR1cm5WYWx1ZUdQUik7CiAgICAg
ICAgICAgICBpZiAocmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4aWNhbFZhciB8fCByZXNvbHZlVHlw
ZSA9PSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykKICAgICAgICAgICAg
ICAgICBqaXQubG9hZFB0cihBZGRyZXNzKHJldHVyblZhbHVlR1BSLCBKU0dsb2JhbE9iamVjdDo6
b2Zmc2V0T2ZHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSksIHJldHVyblZhbHVlR1BSKTsKQEAg
LTE4MDksOSArMTc5Nyw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4g
SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mIHZtKQogICAgIGF1dG8gZG9WYXJJ
bmplY3Rpb25DaGVjayA9IFsmXSAoYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcykgewogICAg
ICAgICBpZiAoIW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBqaXQubG9hZFB0cihhZGRyZXNzRm9yKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayks
IHNjcmF0Y2hHUFIpOwotICAgICAgICBqaXQubG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIENv
ZGVCbG9jazo6b2Zmc2V0T2ZHbG9iYWxPYmplY3QoKSksIHNjcmF0Y2hHUFIpOwotICAgICAgICBq
aXQubG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9i
amVjdCwgbV92YXJJbmplY3Rpb25XYXRjaHBvaW50KSksIHNjcmF0Y2hHUFIpOworICAgICAgICBs
b2FkR2xvYmFsT2JqZWN0KGppdCwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKEFk
ZHJlc3Moc2NyYXRjaEdQUiwgSlNHbG9iYWxPYmplY3Q6Om9mZnNldE9mVmFySW5qZWN0aW9uV2F0
Y2hwb2ludCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJh
bmNoOChFcXVhbCwgQWRkcmVzcyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0
YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKICAgICB9OwogCkBAIC0xODI2
LDggKzE4MTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6
Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKFZNJiB2bSkKICAgICAgICAgICAgIHNsb3dDYXNl
LmFwcGVuZChqaXQuYnJhbmNoMzIoTm90RXF1YWwsIEFkZHJlc3Moc2NvcGVHUFIsIEpTQ2VsbDo6
c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpKTsKIAogICAgICAgICAgICAgaml0Lmpp
dEFzc2VydChzY29wZWRMYW1iZGE8SnVtcCh2b2lkKT4oWyZdICgpIC0+IEp1bXAgewotICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKGFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2Nr
KSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQWRkcmVzcyhzY3Jh
dGNoR1BSLCBDb2RlQmxvY2s6Om9mZnNldE9mR2xvYmFsT2JqZWN0KCkpLCBzY3JhdGNoR1BSKTsK
KyAgICAgICAgICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KGppdCwgc2NyYXRjaEdQUik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGppdC5icmFuY2hQdHIoRXF1YWwsIHNjb3BlR1BSLCBzY3JhdGNo
R1BSKTsKICAgICAgICAgICAgIH0pKTsKIApAQCAtMjU2OSw3ICsyNTU1LDcgQEAgdm9pZCBKSVQ6
OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCBHUFJS
ZWcgc2NyYXRjaEdQUikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbG9hZEdsb2JhbE9iamVjdChz
Y3JhdGNoR1BSKTsKLSAgICBsb2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgT0JKRUNUX09GRlNF
VE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQpKSwgc2NyYXRjaEdQ
Uik7CisgICAgbG9hZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIEpTR2xvYmFsT2JqZWN0OjpvZmZz
ZXRPZlZhckluamVjdGlvbldhdGNocG9pbnQoKSksIHNjcmF0Y2hHUFIpOwogICAgIGFkZFNsb3dD
YXNlKGJyYW5jaDgoRXF1YWwsIEFkZHJlc3Moc2NyYXRjaEdQUiwgV2F0Y2hwb2ludFNldDo6b2Zm
c2V0T2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMyKElzSW52YWxpZGF0ZWQpKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVW51c2VkUG9pbnRlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9VbnVzZWRQb2ludGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYwOTk4ZDI1ZGYyYzNmOTVhYTM0NjMzMjczYTMxM2QyNTY4YzNhNzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9VbnVzZWRQb2ludGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEg
b25jZQotCi1uYW1lc3BhY2UgSlNDIHsKLQotc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgdW51
c2VkUG9pbnRlciA9IDB4ZDFlN2JlZWY7Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi11c2luZyBK
U0M6OnVudXNlZFBvaW50ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaAppbmRleCA1NmE0MzdmZTAxNjJhMjRlMzlkYjYxYWQxYjE4MDIyOTg3NTJj
ODg4Li5mYmUyYTIxZGMwNzU5MTY2ZGQ1YzBlMzAzZGQ2OGNlY2E4OWUwNWQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTkyNCw2ICs5
MjQsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0IHsKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mVk0oKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdm0pOyB9CiAgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZkdsb2JhbExleGljYWxFbnZpcm9ubWVudCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihKU0dsb2JhbE9iamVjdCwgbV9nbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQpOyB9CiAgICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkdsb2JhbExleGljYWxCaW5kaW5nRXBvY2goKSB7IHJl
dHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fZ2xvYmFsTGV4aWNhbEJpbmRp
bmdFcG9jaCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mVmFySW5qZWN0aW9uV2F0
Y2hwb2ludCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV92YXJJ
bmplY3Rpb25XYXRjaHBvaW50KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWYXJS
ZWFkT25seVdhdGNocG9pbnQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmpl
Y3QsIG1fdmFyUmVhZE9ubHlXYXRjaHBvaW50KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZGdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VT
eW1ib2xGdW5jdGlvbik7IH0KIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIElu
c3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlci5nZXQoKTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>