<?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>224223</bug_id>
          
          <creation_ts>2021-04-05 22:13:22 -0700</creation_ts>
          <short_desc>Add IPC::Semaphore stub for Unix ports</short_desc>
          <delta_ts>2021-04-06 14:28:24 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223764</see_also>
          <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="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747279</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-05 22:13:22 -0700</bug_when>
    <thetext>Add IPC::Semaphore stub for Unix ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747281</commentid>
    <comment_count>1</comment_count>
      <attachid>425242</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-05 22:19:26 -0700</bug_when>
    <thetext>Created attachment 425242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747282</commentid>
    <comment_count>2</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-04-05 22:45:18 -0700</bug_when>
    <thetext>Does the &quot;scattering of ifdefs&quot; have a substantial problem in context of WebKit, where ifdefs are used in general?
I think the original intention was that the code &quot;sort-of works&quot; without the semaphore. So this takes it to &quot;definitively does not work&quot;. Not that this choice would be bad, it may be better than what&apos;s currently in..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747293</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-05 23:43:48 -0700</bug_when>
    <thetext>Yes, it seems the original intention. However, it didn&apos;t work as far as I tested. 
Unused code will become broken quickly. Sooner or later, Unix ports also should have the semaphore implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747299</commentid>
    <comment_count>4</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-04-05 23:59:32 -0700</bug_when>
    <thetext>&gt; However, it didn&apos;t work as far as I tested.  Unused code will become broken quickly. 

Sounds like a good rationale.

&gt; Sooner or later, Unix ports also should have the semaphore implementation.

Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747590</commentid>
    <comment_count>5</comment_count>
      <attachid>425314</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-06 13:04:54 -0700</bug_when>
    <thetext>Created attachment 425314
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747633</commentid>
    <comment_count>6</comment_count>
      <attachid>425314</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-06 14:27:26 -0700</bug_when>
    <thetext>Comment on attachment 425314
Patch for landing

Clearing flags on attachment: 425314

Committed r275553 (236209@main): &lt;https://commits.webkit.org/236209@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747634</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-06 14:27:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747637</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-06 14:28:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/76284505&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425242</attachid>
            <date>2021-04-05 22:19:26 -0700</date>
            <delta_ts>2021-04-06 13:04:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224223-20210406141924.patch</filename>
            <type>text/plain</type>
            <size>28062</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3MTBjNzI4OWNkY2M3MTg4
N2RlMGE5NWE3NDZlYjAxZTIxMmJkYzYuLmQxMGQxZGEwY2Q2MGU5MTk4NzdlYzAwMmY2YjFjOGU5
MGQzNGY5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDQtMDUgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgQWRkIElQQzo6U2Vt
YXBob3JlIHN0dWIgZm9yIFVuaXggcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNDIyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBsYXlTdGF0aW9uLCBHVEsgYW5kIFdQRSBwb3J0cyBkb24ndCB1
c2UgaXQgeWV0LiBKdXN0IGFkZCBzdHVicworICAgICAgICBpbnN0ZWFkIG9mIHNjYXR0ZXJpbmcg
I2lmIGV2ZXJ5d2hlcmUgdXNpbmcgU2VtYXBob3JlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6bmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJBZnRlckFwcGx5
aW5nRGlzcGxheUxpc3RzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6cG9wdWxhdGVHZXRJbWFnZURhdGFTaGFyZWRNZW1vcnkpOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbjo6c2V0V2FrZVVwU2VtYXBob3JlKToKKyAgICAgICAgKElQQzo6U3RyZWFt
Q2xpZW50Q29ubmVjdGlvbjo6d2FrZVVwU2VydmVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAoSVBDOjpTdHJlYW1DbGllbnRDb25u
ZWN0aW9uOjp0cnlBY3F1aXJlKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlv
bjo6dHJ5QWNxdWlyZUFsbCk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rp
b25Xb3JrUXVldWUuY3BwOgorICAgICAgICAoSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVl
OjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZTo6cmVtb3ZlU3RyZWFtQ29ubmVjdGlvbik6CisgICAgICAgIChJUEM6OlN0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU6OnN0b3ApOgorICAgICAgICAoSVBDOjpTdHJlYW1Db25u
ZWN0aW9uV29ya1F1ZXVlOjp3YWtlVXApOgorICAgICAgICAoSVBDOjpTdHJlYW1Db25uZWN0aW9u
V29ya1F1ZXVlOjp3YWtlVXBQcm9jZXNzaW5nVGhyZWFkKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9T
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbkJhc2U6OnJlbGVhc2UpOgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uQmFzZTo6cmVsZWFzZUFsbCk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL3VuaXgvSVBDU2Vt
YXBob3JlVW5peC5jcHA6IEFkZGVkLgorICAgICAgICAoSVBDOjpTZW1hcGhvcmU6OlNlbWFwaG9y
ZSk6CisgICAgICAgIChJUEM6OlNlbWFwaG9yZTo6c2lnbmFsKToKKyAgICAgICAgKElQQzo6U2Vt
YXBob3JlOjp3YWl0KToKKyAgICAgICAgKElQQzo6U2VtYXBob3JlOjp3YWl0Rm9yKToKKyAgICAg
ICAgKElQQzo6U2VtYXBob3JlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTZW1hcGhv
cmU6OmRlY29kZSk6CisgICAgICAgIChJUEM6OlNlbWFwaG9yZTo6ZGVzdHJveSk6CisgICAgICAg
ICogUGxhdGZvcm1QbGF5U3RhdGlvbi5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JHZXRJbWFnZURh
dGFUb0NvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpkaWRBcHBlbmREYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0UmVuZGVyaW5nVGhyZWFkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wUmVuZGVyaW5nVGhyZWFkKToKKwog
MjAyMS0wNC0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjI2Nzc2MykgTmV0d29ya1Byb2Nlc3MgbmV2ZXIgdGVybWlu
YXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDZiNmI0MmU5M2FjNGEyMWNkZmM4Nzc1
Y2Q5MTVkYjUwYTNiNzY3N2YuLjA5ZjMyMjJlZDc4ZGVlYmQ2OWRhOTYwYzUxODA0YzY2ZDUwMWQ2
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTI0NywxMSArMjQ3LDcgQEAgUmVmUHRy
PEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpuZXh0RGVzdGluYXRpb25JbWFn
ZUJ1ZmZlckFmdGVyQXBwbHkKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAg
aGFuZGxlLnN0YXJ0V2FpdGluZygpOwotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAg
bV9yZXN1bWVEaXNwbGF5TGlzdFNlbWFwaG9yZS53YWl0Rm9yKDMwX3VzKTsKLSNlbHNlCi0gICAg
ICAgICAgICBzbGVlcCgzMF91cyk7Ci0jZW5kaWYKIAogICAgICAgICAgICAgYXV0byByZXN1bWVS
ZWFkaW5nSW5mbyA9IGhhbmRsZS5zdG9wV2FpdGluZygpOwogICAgICAgICAgICAgaWYgKCFyZXN1
bWVSZWFkaW5nSW5mbykKQEAgLTM3Niw5ICszNzIsNyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OnBvcHVsYXRlR2V0SW1hZ2VEYXRhU2hhcmVkTWVtb3J5KFdlYkNvcmU6OkltYWdlRGF0
YQogICAgIH0gZWxzZQogICAgICAgICBtZW1zZXQobV9nZXRJbWFnZURhdGFTaGFyZWRNZW1vcnkt
PmRhdGEoKSwgMCwgbV9nZXRJbWFnZURhdGFTaGFyZWRNZW1vcnktPnNpemUoKSk7CiAKLSNpZiBP
UyhEQVJXSU4pCiAgICAgbV9nZXRJbWFnZURhdGFTZW1hcGhvcmUuc2lnbmFsKCk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZm
ZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJD
b3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0lQQ1NlbWFwaG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9JUENTZW1hcGhvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0OWJlYTA1MGYzZWFiMGU2MGMyNmNmNTE5MGNiOTZmZjllMDE5MjAyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0lQQ1NlbWFwaG9yZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklQQ1Nl
bWFwaG9yZS5oIgotCi0jaWYgIU9TKERBUldJTikgJiYgIU9TKFdJTkRPV1MpCi0KLW5hbWVzcGFj
ZSBJUEMgewotCi1TZW1hcGhvcmU6OlNlbWFwaG9yZSgpID0gZGVmYXVsdDsKLQotU2VtYXBob3Jl
OjpTZW1hcGhvcmUoU2VtYXBob3JlJiYpID0gZGVmYXVsdDsKLQotU2VtYXBob3JlOjp+U2VtYXBo
b3JlKCkgPSBkZWZhdWx0OwotCi1TZW1hcGhvcmUmIFNlbWFwaG9yZTo6b3BlcmF0b3I9KFNlbWFw
aG9yZSYmKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgU2VtYXBob3JlOjplbmNvZGUoRW5jb2RlciYpIGNv
bnN0IHsgfQotCi1PcHRpb25hbDxTZW1hcGhvcmU+IFNlbWFwaG9yZTo6ZGVjb2RlKERlY29kZXIm
KQotewotICAgIHJldHVybiBTZW1hcGhvcmUgeyB9OwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNw
cAppbmRleCAxYjNmNjc4NWIyYmY4YTg0NGRmYjY0MzdhMGZlMmExMzRkMjBjMTVkLi5jNzkxYWRk
NGUwMWEyOWU3NTJkYzJlZGE1YmMwZjFlZjViZWY5OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcApAQCAtNDAsMTgg
KzQwLDE0IEBAIFN0cmVhbUNsaWVudENvbm5lY3Rpb246OlN0cmVhbUNsaWVudENvbm5lY3Rpb24o
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgc2l6ZV90IHNpCiAKIHZvaWQgU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbjo6c2V0V2FrZVVwU2VtYXBob3JlKElQQzo6U2VtYXBob3JlJiYgc2VtYXBob3JlKQog
ewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgbV93YWtlVXBTZW1h
cGhvcmUgPSBXVEZNb3ZlKHNlbWFwaG9yZSk7Ci0jZW5kaWYKICAgICB3YWtlVXBTZXJ2ZXIoKTsK
IH0KIAogdm9pZCBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjp3YWtlVXBTZXJ2ZXIoKQogewotI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgaWYgKG1fd2FrZVVwU2VtYXBo
b3JlKQogICAgICAgICBtX3dha2VVcFNlbWFwaG9yZS0+c2lnbmFsKCk7Ci0jZW5kaWYKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVj
dGlvbi5oCmluZGV4IGNmYTZjMDZmMWFmMDk5YzQyMDUxMDhjNjIxNTcxNTUxZTk1NjAwZjYuLjBk
YmE4NzVlNzFhYThiYWNlOWVkOWI1OGE1YzEzMDk1NjM2NzA2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmgKQEAgLTEwMiw5
ICsxMDIsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1fY2xpZW50T2Zmc2V0IHsgMCB9Owog
ICAgIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIgbV9idWZmZXI7Ci0jaWYgUExBVEZPUk0oQ09DT0Ep
IHx8IFBMQVRGT1JNKFdJTikKICAgICBPcHRpb25hbDxTZW1hcGhvcmU+IG1fd2FrZVVwU2VtYXBo
b3JlOwotI2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgpAQCAt
MjQwLDE3ICsyMzgsMTIgQEAgaW5saW5lIE9wdGlvbmFsPFN0cmVhbUNsaWVudENvbm5lY3Rpb246
OlNwYW4+IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeUFjcXVpcmUKICAgICAgICAgfQogICAg
ICAgICBpZiAodGltZW91dC5kaWRUaW1lT3V0KCkpCiAgICAgICAgICAgICBicmVhazsKLSNpZiBQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgICAgICBDbGllbnRMaW1pdCBvbGRD
bGllbnRMaW1pdCA9IHNoYXJlZENsaWVudExpbWl0KCkuY29tcGFyZUV4Y2hhbmdlU3Ryb25nKGNs
aWVudExpbWl0LCBDbGllbnRMaW1pdDo6Y2xpZW50SXNXYWl0aW5nVGFnLCBzdGQ6Om1lbW9yeV9v
cmRlcl9hY3FfcmVsLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKICAgICAgICAgaWYgKGNs
aWVudExpbWl0ID09IG9sZENsaWVudExpbWl0KSB7CiAgICAgICAgICAgICBtX2J1ZmZlci5jbGll
bnRXYWl0U2VtYXBob3JlKCkud2FpdEZvcih0aW1lb3V0KTsKICAgICAgICAgICAgIGNsaWVudExp
bWl0ID0gc2hhcmVkQ2xpZW50TGltaXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUp
OwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNsaWVudExpbWl0ID0gb2xkQ2xpZW50TGlt
aXQ7Ci0jZWxzZQotICAgICAgICBUaHJlYWQ6OnlpZWxkKCk7Ci0gICAgICAgIGNsaWVudExpbWl0
ID0gc2hhcmVkQ2xpZW50TGltaXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOwot
I2VuZGlmCiAgICAgICAgIC8vIFRoZSBhbGlnbmVkU3BhbiB1c2VzIHRoZSBtaW5pbXVtTWVzc2Fn
ZVNpemUgdG8gY2FsY3VsYXRlIHRoZSBuZXh0IGJlZ2lubmluZyBwb3NpdGlvbiBpbiB0aGUgYnVm
ZmVyLAogICAgICAgICAvLyBhbmQgbm90IHRoZSBzaXplLiBUaGUgc2l6ZSBtaWdodCBiZSBtb3Jl
IG9yIGxlc3Mgd2hhdCBpcyBuZWVkZWQsIGRlcGVuZGluZyBvbiB3aGVyZSB0aGUgcmVhZGVyIGlz
LgogICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBjYXBhY2l0eSBmb3IgbWluaW11bSBtZXNzYWdl
IHNpemUsIHdhaXQgdW50aWwgbW9yZSBpcyBhdmFpbGFibGUuCkBAIC0yNzMsMjggKzI2NiwxNyBA
QCBpbmxpbmUgT3B0aW9uYWw8U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6U3Bhbj4gU3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbjo6dHJ5QWNxdWlyZQogICAgIC8vIElmIHRoZSB0cmFuc2FjdGlvbiBjb21t
aXRzLCBzZXJ2ZXIgaXMgZ3VhcmFudGVlZCB0byBzaWduYWwuCiAKICAgICBmb3IgKDs7KSB7Ci0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKICAgICAgICAgQ2xpZW50TGltaXQg
Y2xpZW50TGltaXQgPSBzaGFyZWRDbGllbnRMaW1pdCgpLmV4Y2hhbmdlKENsaWVudExpbWl0Ojpj
bGllbnRJc1dhaXRpbmdUYWcsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOwogICAgICAgICBD
bGllbnRPZmZzZXQgY2xpZW50T2Zmc2V0ID0gc2hhcmVkQ2xpZW50T2Zmc2V0KCkubG9hZChzdGQ6
Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKLSNlbHNlCi0gICAgICAgIENsaWVudExpbWl0IGNsaWVu
dExpbWl0ID0gc2hhcmVkQ2xpZW50TGltaXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVp
cmUpOwotICAgICAgICBDbGllbnRPZmZzZXQgY2xpZW50T2Zmc2V0ID0gc2hhcmVkQ2xpZW50T2Zm
c2V0KCkubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKLSNlbmRpZgogICAgICAgICBp
ZiAoIWNsaWVudExpbWl0ICYmIChjbGllbnRPZmZzZXQgPT0gQ2xpZW50T2Zmc2V0OjpzZXJ2ZXJJ
c1NsZWVwaW5nVGFnIHx8ICFjbGllbnRPZmZzZXQpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgICAgICBtX2J1ZmZlci5jbGll
bnRXYWl0U2VtYXBob3JlKCkud2FpdEZvcih0aW1lb3V0KTsKLSNlbHNlCi0gICAgICAgIFRocmVh
ZDo6eWllbGQoKTsKLSNlbmRpZgogICAgICAgICBpZiAodGltZW91dC5kaWRUaW1lT3V0KCkpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oV0lOKQogICAgIC8vIEluIGNhc2UgdGhlIHRyYW5zYWN0aW9uIHdhcyBj
YW5jZWxsZWQsIHVuZG8gdGhlIHRyYW5zYWN0aW9uIG1hcmtlci4KICAgICBzaGFyZWRDbGllbnRM
aW1pdCgpLnN0b3JlKHN0YXRpY19jYXN0PENsaWVudExpbWl0PigwKSwgc3RkOjptZW1vcnlfb3Jk
ZXJfcmVsZWFzZSk7Ci0jZW5kaWYKICAgICBtX2NsaWVudE9mZnNldCA9IDA7CiAgICAgcmV0dXJu
IGFsaWduZWRTcGFuKG1fY2xpZW50T2Zmc2V0LCAwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5jcHAKaW5kZXgg
NjU4ZTY0OTI0ZGUwZWMwMmFlMjFhNGM5Yjg5ZDE5MzdkNzRkYmUxYS4uM2M3MGE2ZTA4ZGU2OTY5
YzcyMzliYTUyNzY2YTkyOTVkZTczM2I1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5jcHAKQEAgLTI5LDkgKzI5
LDcgQEAKIG5hbWVzcGFjZSBJUEMgewogCiBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlOjpTdHJl
YW1Db25uZWN0aW9uV29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUpCi0jaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFBMQVRGT1JNKFdJTikKICAgICA6IG1fbmFtZShuYW1lKQotI2VuZGlmCiB7CiB9CiAK
QEAgLTYzLDI4ICs2MSwyMiBAQCB2b2lkIFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU6OnJlbW92
ZVN0cmVhbUNvbm5lY3Rpb24oU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhcwogICAgICAgICBtX2Nv
bm5lY3Rpb25zLnJlbW92ZShjb25uZWN0aW9uKTsKICAgICAgICAgQVNTRVJUKCFtX3Nob3VsZFF1
aXQpOyAvLyBSZS1lbnRlcmluZyBkdXJpbmcgc2h1dGRvd24gbm90IHN1cHBvcnRlZC4KICAgICB9
Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKICAgICBtX3dha2VVcFNlbWFw
aG9yZS5zaWduYWwoKTsKLSNlbmRpZgogfQogCiB2b2lkIFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVl
dWU6OnN0b3AoKQogewogICAgIG1fc2hvdWxkUXVpdCA9IHRydWU7Ci0jaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFBMQVRGT1JNKFdJTikKICAgICBpZiAoIW1fcHJvY2Vzc2luZ1RocmVhZCkKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fd2FrZVVwU2VtYXBob3JlLnNpZ25hbCgpOwogICAgIG1fcHJvY2Vz
c2luZ1RocmVhZC0+d2FpdEZvckNvbXBsZXRpb24oKTsKICAgICBtX3Byb2Nlc3NpbmdUaHJlYWQg
PSBudWxscHRyOwotI2VuZGlmCiB9CiAKIHZvaWQgU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6
d2FrZVVwKCkKIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIG1f
d2FrZVVwU2VtYXBob3JlLnNpZ25hbCgpOwotI2VuZGlmCiB9CiAKIElQQzo6U2VtYXBob3JlJiBT
dHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlOjp3YWtlVXBTZW1hcGhvcmUoKQpAQCAtOTQsNyArODYs
NiBAQCBJUEM6OlNlbWFwaG9yZSYgU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6d2FrZVVwU2Vt
YXBob3JlKCkKIAogdm9pZCBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlOjp3YWtlVXBQcm9jZXNz
aW5nVGhyZWFkKCkKIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAg
IGlmIChtX3Byb2Nlc3NpbmdUaHJlYWQpIHsKICAgICAgICAgbV93YWtlVXBTZW1hcGhvcmUuc2ln
bmFsKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTExMSw3ICsxMDIsNiBAQCB2b2lkIFN0cmVhbUNv
bm5lY3Rpb25Xb3JrUXVldWU6Ondha2VVcFByb2Nlc3NpbmdUaHJlYWQoKQogICAgICAgICB9CiAg
ICAgfTsKICAgICBtX3Byb2Nlc3NpbmdUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZShtX25hbWUsIFdU
Rk1vdmUodGFzayksIFRocmVhZFR5cGU6OkdyYXBoaWNzLCBUaHJlYWQ6OlFPUzo6VXNlckludGVy
YWN0aXZlKTsKLSNlbmRpZgogfQogCiB2b2lkIFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU6OnBy
b2Nlc3NTdHJlYW1zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaAppbmRleCA2NjkwNGY2NmZjMjdjNTIyNmM0YzMxN2I3
YmZmNTI3NWU1NTI4NDJjLi40YzQ1N2MyZjU0NDZhYzAxMDU2ODYyZmIxNmE5Yjg5NzI3M2IxNDYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9u
V29ya1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZS5oCkBAIC01Myw5ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3YWtl
VXBQcm9jZXNzaW5nVGhyZWFkKCk7CiAgICAgdm9pZCBwcm9jZXNzU3RyZWFtcygpOwogCi0jaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKICAgICBjb25zdCBjaGFyKiBjb25zdCBt
X25hbWU7Ci0jZW5kaWYKIAogICAgIFNlbWFwaG9yZSBtX3dha2VVcFNlbWFwaG9yZTsKICAgICBS
ZWZQdHI8VGhyZWFkPiBtX3Byb2Nlc3NpbmdUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDAwNDcwZTBm
ZjRiMzhjZDk5NDgwNmI1NGY5NzZiZjhjMDA4NDJkNDEuLjZhN2FlMDJiMWViYzc0NjI0NWI0OTk2
MjhkNGIxMjU3ZGY0ZWJmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC04OCwxNyArODgsMTIgQEAgdm9pZCBT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6cmVsZWFzZShzaXplX3QgcmVhZFNpemUpCiAgICAg
cmVhZFNpemUgPSBzdGQ6Om1heChyZWFkU2l6ZSwgbWluaW11bU1lc3NhZ2VTaXplKTsKICAgICBT
ZXJ2ZXJPZmZzZXQgc2VydmVyT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8U2VydmVyT2Zmc2V0Pih3cmFw
T2Zmc2V0KGFsaWduT2Zmc2V0KG1fc2VydmVyT2Zmc2V0KSArIHJlYWRTaXplKSk7CiAKLSNpZiBQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIFNlcnZlck9mZnNldCBvbGRTZXJ2
ZXJPZmZzZXQgPSBzaGFyZWRTZXJ2ZXJPZmZzZXQoKS5leGNoYW5nZShzZXJ2ZXJPZmZzZXQsIHN0
ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOwogICAgIC8vIElmIHRoZSBjbGllbnQgd3JvdGUgb3Zl
ciBzZXJ2ZXJPZmZzZXQsIGl0IG1lYW5zIHRoZSBjbGllbnQgaXMgd2FpdGluZy4KICAgICBpZiAo
b2xkU2VydmVyT2Zmc2V0ID09IFNlcnZlck9mZnNldDo6Y2xpZW50SXNXYWl0aW5nVGFnKQogICAg
ICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3JlKCkuc2lnbmFsKCk7CiAgICAgZWxzZQog
ICAgICAgICBBU1NFUlQoIShvbGRTZXJ2ZXJPZmZzZXQgJiBTZXJ2ZXJPZmZzZXQ6OmNsaWVudElz
V2FpdGluZ1RhZykpOwotI2Vsc2UKLSAgICBzaGFyZWRTZXJ2ZXJPZmZzZXQoKS5zdG9yZShzZXJ2
ZXJPZmZzZXQsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVhc2UpOwotICAgIC8vIElQQzo6U2VtYXBo
b3JlIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhlIHBsYXRmb3JtLiBDbGllbnQgd2lsbCBwb2xsIGFu
ZCB5aWVsZC4KLSNlbmRpZgogCiAgICAgbV9zZXJ2ZXJPZmZzZXQgPSBzZXJ2ZXJPZmZzZXQ7CiB9
CkBAIC0xMDYsMTcgKzEwMSwxMiBAQCB2b2lkIFN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlOjpy
ZWxlYXNlKHNpemVfdCByZWFkU2l6ZSkKIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6
OnJlbGVhc2VBbGwoKQogewogICAgIHNoYXJlZFNlcnZlckxpbWl0KCkuc3RvcmUoc3RhdGljX2Nh
c3Q8U2VydmVyTGltaXQ+KDApLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKLSNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIFNlcnZlck9mZnNldCBvbGRTZXJ2ZXJP
ZmZzZXQgPSBzaGFyZWRTZXJ2ZXJPZmZzZXQoKS5leGNoYW5nZShzdGF0aWNfY2FzdDxTZXJ2ZXJP
ZmZzZXQ+KDApLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKICAgICAvLyBJZiB0aGUgY2xp
ZW50IHdyb3RlIG92ZXIgc2VydmVyT2Zmc2V0LCBpdCBtZWFucyB0aGUgY2xpZW50IGlzIHdhaXRp
bmcuCiAgICAgaWYgKG9sZFNlcnZlck9mZnNldCA9PSBTZXJ2ZXJPZmZzZXQ6OmNsaWVudElzV2Fp
dGluZ1RhZykKICAgICAgICAgbV9idWZmZXIuY2xpZW50V2FpdFNlbWFwaG9yZSgpLnNpZ25hbCgp
OwogICAgIGVsc2UKICAgICAgICAgQVNTRVJUKCEob2xkU2VydmVyT2Zmc2V0ICYgU2VydmVyT2Zm
c2V0OjpjbGllbnRJc1dhaXRpbmdUYWcpKTsKLSNlbHNlCi0gICAgc2hhcmVkU2VydmVyT2Zmc2V0
KCkuc3RvcmUoc3RhdGljX2Nhc3Q8U2VydmVyT2Zmc2V0PigwKSwgc3RkOjptZW1vcnlfb3JkZXJf
cmVsZWFzZSk7Ci0gICAgLy8gSVBDOjpTZW1hcGhvcmUgbm90IGltcGxlbWVudGVkIGZvciB0aGUg
cGxhdGZvcm0uIENsaWVudCB3aWxsIHBvbGwgYW5kIHlpZWxkLgotI2VuZGlmCiAgICAgbV9zZXJ2
ZXJPZmZzZXQgPSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy91bml4L0lQQ1NlbWFwaG9yZVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
dW5peC9JUENTZW1hcGhvcmVVbml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGNlMGJiZGMxZjQ0ZjY3ZTY1
YjA3YjE1OWZjZTNkNmU2MmM1MTg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvdW5peC9JUENTZW1hcGhvcmVVbml4LmNwcApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklQQ1NlbWFwaG9yZS5o
IgorCituYW1lc3BhY2UgSVBDIHsKKworU2VtYXBob3JlOjpTZW1hcGhvcmUoKQoreworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitTZW1hcGhvcmU6OlNlbWFwaG9yZShTZW1hcGhvcmUm
JikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworU2VtYXBob3JlOjp+U2VtYXBo
b3JlKCkgPSBkZWZhdWx0OworCitTZW1hcGhvcmUmIFNlbWFwaG9yZTo6b3BlcmF0b3I9KFNlbWFw
aG9yZSYmKSA9IGRlZmF1bHQ7CisKK3ZvaWQgU2VtYXBob3JlOjpzaWduYWwoKQoreworfQorCit2
b2lkIFNlbWFwaG9yZTo6d2FpdCgpCit7Cit9CisKK2Jvb2wgU2VtYXBob3JlOjp3YWl0Rm9yKFRp
bWVvdXQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFNlbWFwaG9yZTo6ZW5jb2Rl
KEVuY29kZXImKSBjb25zdAoreworfQorCitPcHRpb25hbDxTZW1hcGhvcmU+IFNlbWFwaG9yZTo6
ZGVjb2RlKERlY29kZXImKQoreworICAgIHJldHVybiBTZW1hcGhvcmUgeyB9OworfQorCit2b2lk
IFNlbWFwaG9yZTo6ZGVzdHJveSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybVBsYXlTdGF0aW9uLmNtYWtlCmluZGV4IDQzMjFjNjVjNmU0MmYyOGQ1MmEx
ZTYyZWExMTJjZTQ2NGY1M2M0YzQuLjhiNzZiNjA2NTNiMWIzMWFkM2I4YzllN2Q3YjM2N2Q5ZjJm
Y2E2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1QbGF5U3RhdGlvbi5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtUGxheVN0YXRpb24uY21ha2UKQEAgLTUyLDYg
KzUyLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKIAogICAgIFBsYXRmb3JtL0lQQy91
bml4L0F0dGFjaG1lbnRVbml4LmNwcAogICAgIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25V
bml4LmNwcAorICAgIFBsYXRmb3JtL0lQQy91bml4L0lQQ1NlbWFwaG9yZVVuaXguY3BwCiAKICAg
ICBQbGF0Zm9ybS9jbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNw
cAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAppbmRleCA5NGVhNzFjMzU4N2ZlNGY4MzliMDkwNzI0M2Y4ZTI0MWM5ODkx
ZjBlLi44NjVhYzQ1YjRkNWZkNmRhZDJkODFlNzdmNjRjY2ZiYjk3Y2YxMjE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKQEAgLTE0Niw3ICsxNDYsNiBAQCBQbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5jcHAgQG5vLXVu
aWZ5CiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMv
RGVjb2Rlci5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAgQG5vLXVuaWZ5
Ci1QbGF0Zm9ybS9JUEMvSVBDU2VtYXBob3JlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9K
U0lQQ0JpbmRpbmcuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlUXVl
dWVNYXAuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAg
QG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBmOGRiZDJhYjdjMmUwNGY1ZjliNTFkYTBj
ZjU0Njk5NGNmNmMyYWFjLi44MTY1ZmZlOThhNmJjNjIwODY1YjZmYzdjZTRkYTMzY2U5NThmNjk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTUyLDYgKzUyLDcgQEAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKIAogUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVu
dFVuaXguY3BwCiBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKK1BsYXRmb3Jt
L0lQQy91bml4L0lQQ1NlbWFwaG9yZVVuaXguY3BwCiAKIFBsYXRmb3JtL2NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4
IDdmOTc2N2RjZjc0YWRlYjlkYTM3MWRhMGY0ZmI4NDk4Nzc4M2QxMzEuLjA3NzVhY2VjMjc5Yzg3
M2IyZmQ4MWMwMmMyOTYyNzYzZmY0OTdkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtNTIsNiAr
NTIsNyBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAogCiBQ
bGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKIFBsYXRmb3JtL0lQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcAorUGxhdGZvcm0vSVBDL3VuaXgvSVBDU2VtYXBob3JlVW5peC5jcHAK
IAogUGxhdGZvcm0vY2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5j
cHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMzVjMTc0Y2Y3ZGI4OTEzZDg1MmZmNDljYTJlNGI3ZjJmNTkwNjNiNi4uOWMxNzhhNjVj
ZmJiZWVlOTVkNGNlMGQxNTY1MmZlMjhmNGEwZDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjAwLDcgKzE2MDAsNiBAQAogCQlB
MUVGMzZENTI1ODFGN0VCMDA5MEIwMkEgLyogTWVkaWFGb3JtYXRSZWFkZXIuYnVuZGxlIGluIENv
cHkgUGx1Zy1pbnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE2RTY2MDAy
NTgxOTMwODAwRUUxNzQ5IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmJ1bmRsZSAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChSZW1vdmVIZWFkZXJzT25Db3B5LCApOyB9OyB9OwogCQlBMUZCNjgy
NDFGNkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUZCNjgyMjFGNkU1MTgyMDBDNDNGOUYgLyog
V0tDcmFzaFJlcG9ydGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTMxRjYwQTQyNUNDN0RCOTAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMxRjYwQTIyNUND
N0RCODAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5oICovOyB9OwotCQlBMzFGNjBBNTI1Q0M3REI5
MDBBRjE0RjQgLyogSVBDU2VtYXBob3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzMUY2MEEzMjVDQzdEQjgwMEFGMTRGNCAvKiBJUENTZW1hcGhv
cmUuY3BwICovOyB9OwogCQlBNTEzRjU0MDIxNTRBNUQ3MDA2NjI4NDEgLyogV2ViUGFnZUluc3Bl
Y3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1MTNGNTNFMjE1NEE1Q0MwMDY2Mjg0MSAvKiBXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlci5oICovOyB9OwogCQlBNTE4QjVEMjFGRTFENTVCMDBGOUZBMjggLyogV0tJbnNwZWN0b3JX
S1dlYlZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE1MThCNUQwMUZFMUQ1NUIwMEY5RkEyOCAvKiBXS0luc3BlY3RvcldLV2ViVmlldy5oICovOyB9
OwogCQlBNTQyOTNBNDE5NUE0M0RBMDAyNzgyQzcgLyogV0tJbnNwZWN0b3JOb2RlU2VhcmNoR2Vz
dHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NDI5M0EyMTk1QTQzQzYwMDI3ODJDNyAvKiBXS0luc3BlY3Rvck5vZGVTZWFyY2hH
ZXN0dXJlUmVjb2duaXplci5oICovOyB9OwpAQCAtNTA1OSw3ICs1MDU4LDYgQEAKIAkJQTFGQjY4
MjIxRjZFNTE4MjAwQzQzRjlGIC8qIFdLQ3Jhc2hSZXBvcnRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0NyYXNoUmVwb3J0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFGQjY4MjMx
RjZFNTE4MjAwQzQzRjlGIC8qIFdLQ3Jhc2hSZXBvcnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLQ3Jhc2hSZXBvcnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMx
RjYwQTIyNUNDN0RCODAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJUENTZW1hcGhvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQTMxRjYwQTMyNUNDN0RCODAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJUENTZW1hcGhvcmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMzFGNjBBNjI1Q0M3RENGMDBBRjE0RjQgLyogSVBDU2Vt
YXBob3JlRGFyd2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElQ
Q1NlbWFwaG9yZURhcndpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzOEEx
MkUxMjNDOTNBQzcwMEZBQkZBOSAvKiBUZXh0Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUEzOTM3QjYxMjNDRDFCOUIwMDVCMkEyRSAvKiBXZWJQcmVmZXJlbmNlc0NvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJlZmVyZW5j
ZXNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwNDQsNyArNzA0Miw2
IEBACiAJCQkJOUJEOEFCNDkyNTgyMEU1MjAwNTM4NkY4IC8qIEZvbnRSZWZlcmVuY2UuaCAqLywK
IAkJCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLywK
IAkJCQlDMENFNzJBQzEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oICovLAotCQkJ
CUEzMUY2MEEzMjVDQzdEQjgwMEFGMTRGNCAvKiBJUENTZW1hcGhvcmUuY3BwICovLAogCQkJCUEz
MUY2MEEyMjVDQzdEQjgwMEFGMTRGNCAvKiBJUENTZW1hcGhvcmUuaCAqLywKIAkJCQk5QkY1RUM2
MzI1NDEwRTk5MDA5ODRFNzcgLyogSlNJUENCaW5kaW5nLmNwcCAqLywKIAkJCQk5QjQ3OTA4RTI1
MzE1MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5nLmggKi8sCkBAIC05MjY4LDEwICs5MjY1LDEw
IEBACiAJCQkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29h
LmggKi8sCiAJCQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tICovLAogCQkJCTdFQzRGMEY5MThFNEE5NDUwMDgwNTZBRiAvKiBOZXR3b3JrUHJvY2Vz
c0NvY29hLm1tICovLAotCQkJCTUzMjE1OTUwMURCQUU2RDcwMDU0QUEzQyAvKiBOZXR3b3JrU2Vz
c2lvbkNvY29hLmggKi8sCi0JCQkJNUMyMENCOUIxQkIwRENEMjAwODk1QkIxIC8qIE5ldHdvcmtT
ZXNzaW9uQ29jb2EubW0gKi8sCiAJCQkJNTE4MzI0NzgyNjE1QjAwRDAwM0YyMzlFIC8qIE5ldHdv
cmtTY2hlbWVVUkxQcm90b2NvbC5oICovLAogCQkJCTUxODMyNDc5MjYxNUIwMEQwMDNGMjM5RSAv
KiBOZXR3b3JrU2NoZW1lVVJMUHJvdG9jb2wubW0gKi8sCisJCQkJNTMyMTU5NTAxREJBRTZENzAw
NTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCAqLywKKwkJCQk1QzIwQ0I5QjFCQjBEQ0Qy
MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLywKIAkJCQk0MTI4N0Q0QzIyNUMw
NUM1MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLmggKi8sCiAJCQkJNDEyODdENEIyMjVD
MDVDNDAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSAqLywKIAkJCSk7CkBAIC0xMTY3
Niw3ICsxMTY3Myw2IEBACiAJCQkJMzE3RkU3QzUxQzQ4N0E2QzAwQTBDQTg5IC8qIEFQSUV4cGVy
aW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwQjk2NjE2MThFMjRDQkEwMENF
MUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ2N0EyRTFCRDgx
OTczMDA1M0IyNTEgLyogQVBJRmluZE1hdGNoZXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTUxODMyNDdEMjYxNjhGRjcwMDNGMjM5RSAvKiBOZXR3b3JrVVJMU2NoZW1lVGFzay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzdFMjVENkUxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzcyMTg1NjZDN0MwMEYzRUMwNSAvKiBBUElGcmFt
ZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVFRTYxQTc4MUZCNDAwQjZDRkJFIC8q
IEFQSUZyYW1lSW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTk5Nyw2ICsxMTk5Myw4IEBACiAJ
CQkJNUMyMENCQTAxQkIxRUNEODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MzIxNTk1NTFEQkFFNzI5MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2Nv
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QjkyMjU3MDQ2RjAwRDZGOTdFIC8qIE5ldHdv
cmtTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTgzMjQ3QzI2MTY4QzYyMDAz
RjIzOUUgLyogTmV0d29ya1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUx
ODMyNDdEMjYxNjhGRjcwMDNGMjM5RSAvKiBOZXR3b3JrVVJMU2NoZW1lVGFzay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTcwREFBQzIyMzAzNzMwMzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTU3MERBQUFFMjMwMjZGNUMwMEU4RkMwNCAvKiBOZmNTZXJ2aWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBENzEgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMTI4MjcsNyArMTI4
MjUsNiBAQAogCQkJCTBGQ0I0RTY4MThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1RleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMjEyMTVGMjQwRUU1NzEwMDZFRDQ0
MyAvKiBXS1RleHRQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U0NTk0NUMyNDBG
ODg1NTAwNzgwMTlGIC8qIFdLVGV4dFNlbGVjdGlvblJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTUxODMyNDdDMjYxNjhDNjIwMDNGMjM5RSAvKiBOZXR3b3JrVVJMU2NoZW1lSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkVCNkZDMDEyMDMwMjE5NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tl
clZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MUE2NzZBNjIyQzYyMzI1MDA3
RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzQwNzYwODEyNEZGMDI3MDA2OEYyMEEgLyogV0tUeXBlLmggaW4gSGVhZGVycyAqLywK
QEAgLTEzOTE1LDcgKzEzOTEyLDYgQEAKIAkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyog
SGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0
MjE0NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMjc0OUY2NDUyMTQ2NTYxRTAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTMxRjYwQTUyNUNDN0RCOTAwQUYxNEY0
IC8qIElQQ1NlbWFwaG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkY1RUM2NDI1NDExNDU2
MDA5ODRFNzcgLyogSlNJUENCaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQx
MjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTEzNDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDkxZjEyNDk1OTQ1
MzlmYjMzM2RiYTY2MjlhMmFmYWE2MTBhODc4ZmMuLjJkM2UzNzY5ZjdhMjc0N2M4ZGY1OTk4YzZk
ZTIzZGU0YjA2YzllOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHAKQEAgLTE4MCwxMSArMTgwLDcgQEAgU2hhcmVkTWVtb3J5KiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnNoYXJlZE1lbW9yeUZvckdldEltYWdlRGF0YShzaXplX3QgZGEKIGJvb2wgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yR2V0SW1hZ2VEYXRhVG9Db21wbGV0ZShJ
UEM6OlRpbWVvdXQgdGltZW91dCkKIHsKICAgICBBU1NFUlQobV9nZXRJbWFnZURhdGFTZW1hcGhv
cmUpOwotI2lmIE9TKERBUldJTikKICAgICByZXR1cm4gbV9nZXRJbWFnZURhdGFTZW1hcGhvcmUt
PndhaXRGb3IodGltZW91dCk7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAK
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZXN0cm95R2V0SW1hZ2VEYXRhU2hh
cmVkTWVtb3J5KCkKQEAgLTMyNiw5ICszMjIsNyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6ZGlkQXBwZW5kRGF0YShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbgog
ICAgIGlmICghd2FzRW1wdHkgfHwgZGlkQ2hhbmdlSXRlbUJ1ZmZlciA9PSBEaXNwbGF5TGlzdDo6
RGlkQ2hhbmdlSXRlbUJ1ZmZlcjo6WWVzKSB7CiAgICAgICAgIGlmIChtX2RlZmVycmVkV2FrZXVw
TWVzc2FnZUFyZ3VtZW50cykgewogICAgICAgICAgICAgaWYgKHNoYXJlZEhhbmRsZS0+dHJ5VG9S
ZXN1bWUoeyBtX2RlZmVycmVkV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy0+b2Zmc2V0LCBtX2RlZmVy
cmVkV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy0+ZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZp
ZXIudG9VSW50NjQoKSB9KSkgewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgICAg
IG1fcmVzdW1lRGlzcGxheUxpc3RTZW1hcGhvcmUuc2lnbmFsKCk7Ci0jZW5kaWYKICAgICAgICAg
ICAgICAgICBtX2RlZmVycmVkV2FrZXVwTWVzc2FnZUFyZ3VtZW50cyA9IFdURjo6bnVsbG9wdDsK
ICAgICAgICAgICAgICAgICBtX3JlbWFpbmluZ0l0ZW1zVG9BcHBlbmRCZWZvcmVTZW5kaW5nV2Fr
ZXVwID0gMDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoIS0tbV9yZW1haW5pbmdJdGVtc1RvQXBw
ZW5kQmVmb3JlU2VuZGluZ1dha2V1cCkgewpAQCAtMzQzLDkgKzMzNyw3IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRBcHBlbmREYXRhKGNvbnN0IERpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySGFuCiAKICAgICBhdXRvIG9mZnNldFRvUmVhZCA9IHNoYXJlZEhhbmRsZS0+d3Jp
dGFibGVPZmZzZXQoKSAtIG51bWJlck9mQnl0ZXM7CiAgICAgaWYgKHNoYXJlZEhhbmRsZS0+dHJ5
VG9SZXN1bWUoeyBvZmZzZXRUb1JlYWQsIGRlc3RpbmF0aW9uSW1hZ2VCdWZmZXIudG9VSW50NjQo
KSB9KSkgewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBtX3Jlc3VtZURpc3BsYXlMaXN0
U2VtYXBob3JlLnNpZ25hbCgpOwotI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCAzNmM1MjU5NGNjOWQ5N2YwY2Ey
NDc1OTI5MWI1Yjc2ZGUwNWE2MTQyLi5kN2U3ZjJkMWQwYzMzNzIwNmE2ZTQyOGU5NzU5YWUyNjFi
NmY5MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC03NCw3ICs3
NCw2IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhCiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpzdGFydFJlbmRlcmluZ1RocmVhZCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgQVNTRVJUKCFtX3JlbmRlclRocmVhZCk7CiAKICAgICBhdXRvIG9mZlRocmVhZFJlbmRl
cmluZyA9IFt0aGlzXSgpIG11dGFibGUgewpAQCAtODcsMTIgKzg2LDEwIEBAIHZvaWQgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFydFJlbmRlcmluZ1RocmVhZCgpCiAgICAgICAgIH0g
d2hpbGUgKCFtX3Nob3VsZFN0b3BUaHJlYWQpOwogICAgIH07CiAgICAgbV9yZW5kZXJUaHJlYWQg
PSBUaHJlYWQ6OmNyZWF0ZSgiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHJlbmRlciB0aHJl
YWQiLCBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyksIFRocmVhZFR5cGU6OkF1ZGlvLCBUaHJl
YWQ6OlFPUzo6VXNlckludGVyYWN0aXZlKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZ1RocmVhZCgpCiB7Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgaWYgKCFtX3JlbmRlclRocmVhZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MDAsNyArOTcsNiBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcFJlbmRl
cmluZ1RocmVhZCgpCiAgICAgbV9yZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgbV9yZW5k
ZXJUaHJlYWQtPndhaXRGb3JDb21wbGV0aW9uKCk7CiAgICAgbV9yZW5kZXJUaHJlYWQgPSBudWxs
cHRyOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpjb25u
ZWN0VG9HUFVQcm9jZXNzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425314</attachid>
            <date>2021-04-06 13:04:54 -0700</date>
            <delta_ts>2021-04-06 13:04:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224223-20210407050452.patch</filename>
            <type>text/plain</type>
            <size>25776</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3YmY0NmE3MzFlNzY4NWNk
NTE2ZWNiMTE1MDE0MmNjNzJlZDk5OGQuLmU5M2M2N2FiMGIzZTkzYWZiODg5OTJiNmJlYzAyZTEw
NzMxYTgwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDQtMDYgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgQWRkIElQQzo6U2Vt
YXBob3JlIHN0dWIgZm9yIFVuaXggcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNDIyMworCisgICAgICAgIFJldmlld2VkIGJ5IERvbiBPbG1z
dGVhZC4KKworICAgICAgICBQbGF5U3RhdGlvbiwgR1RLIGFuZCBXUEUgcG9ydHMgZG9uJ3QgdXNl
IGl0IHlldC4gSnVzdCBhZGQgc3R1YnMKKyAgICAgICAgaW5zdGVhZCBvZiBzY2F0dGVyaW5nICNp
ZiBldmVyeXdoZXJlIHVzaW5nIFNlbWFwaG9yZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6Om5leHREZXN0aW5hdGlvbkltYWdlQnVmZmVyQWZ0ZXJBcHBseWlu
Z0Rpc3BsYXlMaXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OnBvcHVsYXRlR2V0SW1hZ2VEYXRhU2hhcmVkTWVtb3J5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVu
dENvbm5lY3Rpb246OnNldFdha2VVcFNlbWFwaG9yZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNs
aWVudENvbm5lY3Rpb246Ondha2VVcFNlcnZlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0
cmVhbUNsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVj
dGlvbjo6dHJ5QWNxdWlyZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb246
OnRyeUFjcXVpcmVBbGwpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9u
V29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6
U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rp
b25Xb3JrUXVldWU6OnJlbW92ZVN0cmVhbUNvbm5lY3Rpb24pOgorICAgICAgICAoSVBDOjpTdHJl
YW1Db25uZWN0aW9uV29ya1F1ZXVlOjpzdG9wKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZTo6d2FrZVVwKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbldv
cmtRdWV1ZTo6d2FrZVVwUHJvY2Vzc2luZ1RocmVhZCk6CisgICAgICAgICogUGxhdGZvcm0vSVBD
L1N0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3Ry
ZWFtU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlOjpyZWxlYXNlKToKKyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bkJhc2U6OnJlbGVhc2VBbGwpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0lQQ1NlbWFw
aG9yZVVuaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2VtYXBob3JlOjpTZW1hcGhvcmUp
OgorICAgICAgICAoSVBDOjpTZW1hcGhvcmU6OnNpZ25hbCk6CisgICAgICAgIChJUEM6OlNlbWFw
aG9yZTo6d2FpdCk6CisgICAgICAgIChJUEM6OlNlbWFwaG9yZTo6d2FpdEZvcik6CisgICAgICAg
IChJUEM6OlNlbWFwaG9yZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2VtYXBob3Jl
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpTZW1hcGhvcmU6OmRlc3Ryb3kpOgorICAgICAgICAq
IFBsYXRmb3JtUGxheVN0YXRpb24uY21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAgICAg
ICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yR2V0SW1hZ2VEYXRh
VG9Db21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6ZGlkQXBwZW5kRGF0YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdGFydFJlbmRlcmluZ1RocmVhZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZ1RocmVhZCk6CisKIDIw
MjEtMDQtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBIb2xkIHN0cm9uZyByZWZlcmVuY2UgdG8geHBjX2Nvbm5lY3Rpb25fdCBpbiBYUENT
ZXJ2aWNlRXZlbnRIYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggNmI2YjQyZTkz
YWM0YTIxY2RmYzg3NzVjZDkxNWRiNTBhM2I3Njc3Zi4uMDlmMzIyMmVkNzhkZWViZDY5ZGE5NjBj
NTE4MDRjNjZkNTAxZDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMjQ3LDExICsy
NDcsNyBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om5leHRE
ZXN0aW5hdGlvbkltYWdlQnVmZmVyQWZ0ZXJBcHBseQogICAgICAgICAgICAgICAgIGJyZWFrOwog
CiAgICAgICAgICAgICBoYW5kbGUuc3RhcnRXYWl0aW5nKCk7Ci0jaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgICAgICAgICBtX3Jlc3VtZURpc3BsYXlMaXN0U2VtYXBob3JlLndhaXRGb3IoMzBfdXMp
OwotI2Vsc2UKLSAgICAgICAgICAgIHNsZWVwKDMwX3VzKTsKLSNlbmRpZgogCiAgICAgICAgICAg
ICBhdXRvIHJlc3VtZVJlYWRpbmdJbmZvID0gaGFuZGxlLnN0b3BXYWl0aW5nKCk7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VtZVJlYWRpbmdJbmZvKQpAQCAtMzc2LDkgKzM3Miw3IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6cG9wdWxhdGVHZXRJbWFnZURhdGFTaGFyZWRNZW1vcnkoV2Vi
Q29yZTo6SW1hZ2VEYXRhCiAgICAgfSBlbHNlCiAgICAgICAgIG1lbXNldChtX2dldEltYWdlRGF0
YVNoYXJlZE1lbW9yeS0+ZGF0YSgpLCAwLCBtX2dldEltYWdlRGF0YVNoYXJlZE1lbW9yeS0+c2l6
ZSgpKTsKIAotI2lmIE9TKERBUldJTikKICAgICBtX2dldEltYWdlRGF0YVNlbWFwaG9yZS5zaWdu
YWwoKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldERhdGFV
UkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+
IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24s
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSVBDU2VtYXBo
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0lQQ1NlbWFwaG9yZS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YmVhMDUwZjNlYWIwZTYwYzI2Y2Y1MTkwY2I5
NmZmOWUwMTkyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSVBDU2VtYXBob3JlLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCi0KLSNpZiAhT1MoREFSV0lOKSAmJiAhT1MoV0lORE9X
UykKLQotbmFtZXNwYWNlIElQQyB7Ci0KLVNlbWFwaG9yZTo6U2VtYXBob3JlKCkgPSBkZWZhdWx0
OwotCi1TZW1hcGhvcmU6OlNlbWFwaG9yZShTZW1hcGhvcmUmJikgPSBkZWZhdWx0OwotCi1TZW1h
cGhvcmU6On5TZW1hcGhvcmUoKSA9IGRlZmF1bHQ7Ci0KLVNlbWFwaG9yZSYgU2VtYXBob3JlOjpv
cGVyYXRvcj0oU2VtYXBob3JlJiYpID0gZGVmYXVsdDsKLQotdm9pZCBTZW1hcGhvcmU6OmVuY29k
ZShFbmNvZGVyJikgY29uc3QgeyB9Ci0KLU9wdGlvbmFsPFNlbWFwaG9yZT4gU2VtYXBob3JlOjpk
ZWNvZGUoRGVjb2RlciYpCi17Ci0gICAgcmV0dXJuIFNlbWFwaG9yZSB7IH07Ci19Ci0KLX0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGll
bnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVu
dENvbm5lY3Rpb24uY3BwCmluZGV4IDFiM2Y2Nzg1YjJiZjhhODQ0ZGZiNjQzN2EwZmUyYTEzNGQy
MGMxNWQuLmM3OTFhZGQ0ZTAxYTI5ZTc1MmRjMmVkYTViYzBmMWVmNWJlZjk5NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24u
Y3BwCkBAIC00MCwxOCArNDAsMTQgQEAgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6U3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBzaXplX3Qgc2kKIAogdm9pZCBT
dHJlYW1DbGllbnRDb25uZWN0aW9uOjpzZXRXYWtlVXBTZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUm
JiBzZW1hcGhvcmUpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKICAg
ICBtX3dha2VVcFNlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBob3JlKTsKLSNlbmRpZgogICAgIHdh
a2VVcFNlcnZlcigpOwogfQogCiB2b2lkIFN0cmVhbUNsaWVudENvbm5lY3Rpb246Ondha2VVcFNl
cnZlcigpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKICAgICBpZiAo
bV93YWtlVXBTZW1hcGhvcmUpCiAgICAgICAgIG1fd2FrZVVwU2VtYXBob3JlLT5zaWduYWwoKTsK
LSNlbmRpZgogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
dHJlYW1DbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJl
YW1DbGllbnRDb25uZWN0aW9uLmgKaW5kZXggY2ZhNmMwNmYxYWYwOTljNDIwNTEwOGM2MjE1NzE1
NTFlOTU2MDBmNi4uMGRiYTg3NWU3MWFhOGJhY2U5ZWQ5YjU4YTVjMTMwOTU2MzY3MDY0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rp
b24uaApAQCAtMTAyLDkgKzEwMiw3IEBAIHByaXZhdGU6CiAKICAgICBzaXplX3QgbV9jbGllbnRP
ZmZzZXQgeyAwIH07CiAgICAgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciBtX2J1ZmZlcjsKLSNpZiBQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIE9wdGlvbmFsPFNlbWFwaG9yZT4g
bV93YWtlVXBTZW1hcGhvcmU7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+CkBAIC0yNDAsMTcgKzIzOCwxMiBAQCBpbmxpbmUgT3B0aW9uYWw8U3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbjo6U3Bhbj4gU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6dHJ5QWNxdWlyZQog
ICAgICAgICB9CiAgICAgICAgIGlmICh0aW1lb3V0LmRpZFRpbWVPdXQoKSkKICAgICAgICAgICAg
IGJyZWFrOwotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgICAgIENs
aWVudExpbWl0IG9sZENsaWVudExpbWl0ID0gc2hhcmVkQ2xpZW50TGltaXQoKS5jb21wYXJlRXhj
aGFuZ2VTdHJvbmcoY2xpZW50TGltaXQsIENsaWVudExpbWl0OjpjbGllbnRJc1dhaXRpbmdUYWcs
IHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOwog
ICAgICAgICBpZiAoY2xpZW50TGltaXQgPT0gb2xkQ2xpZW50TGltaXQpIHsKICAgICAgICAgICAg
IG1fYnVmZmVyLmNsaWVudFdhaXRTZW1hcGhvcmUoKS53YWl0Rm9yKHRpbWVvdXQpOwogICAgICAg
ICAgICAgY2xpZW50TGltaXQgPSBzaGFyZWRDbGllbnRMaW1pdCgpLmxvYWQoc3RkOjptZW1vcnlf
b3JkZXJfYWNxdWlyZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY2xpZW50TGltaXQg
PSBvbGRDbGllbnRMaW1pdDsKLSNlbHNlCi0gICAgICAgIFRocmVhZDo6eWllbGQoKTsKLSAgICAg
ICAgY2xpZW50TGltaXQgPSBzaGFyZWRDbGllbnRMaW1pdCgpLmxvYWQoc3RkOjptZW1vcnlfb3Jk
ZXJfYWNxdWlyZSk7Ci0jZW5kaWYKICAgICAgICAgLy8gVGhlIGFsaWduZWRTcGFuIHVzZXMgdGhl
IG1pbmltdW1NZXNzYWdlU2l6ZSB0byBjYWxjdWxhdGUgdGhlIG5leHQgYmVnaW5uaW5nIHBvc2l0
aW9uIGluIHRoZSBidWZmZXIsCiAgICAgICAgIC8vIGFuZCBub3QgdGhlIHNpemUuIFRoZSBzaXpl
IG1pZ2h0IGJlIG1vcmUgb3IgbGVzcyB3aGF0IGlzIG5lZWRlZCwgZGVwZW5kaW5nIG9uIHdoZXJl
IHRoZSByZWFkZXIgaXMuCiAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGNhcGFjaXR5IGZvciBt
aW5pbXVtIG1lc3NhZ2Ugc2l6ZSwgd2FpdCB1bnRpbCBtb3JlIGlzIGF2YWlsYWJsZS4KQEAgLTI3
MywyOCArMjY2LDE3IEBAIGlubGluZSBPcHRpb25hbDxTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpT
cGFuPiBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjp0cnlBY3F1aXJlCiAgICAgLy8gSWYgdGhlIHRy
YW5zYWN0aW9uIGNvbW1pdHMsIHNlcnZlciBpcyBndWFyYW50ZWVkIHRvIHNpZ25hbC4KIAogICAg
IGZvciAoOzspIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgICAg
ICBDbGllbnRMaW1pdCBjbGllbnRMaW1pdCA9IHNoYXJlZENsaWVudExpbWl0KCkuZXhjaGFuZ2Uo
Q2xpZW50TGltaXQ6OmNsaWVudElzV2FpdGluZ1RhZywgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3Jl
bCk7CiAgICAgICAgIENsaWVudE9mZnNldCBjbGllbnRPZmZzZXQgPSBzaGFyZWRDbGllbnRPZmZz
ZXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOwotI2Vsc2UKLSAgICAgICAgQ2xp
ZW50TGltaXQgY2xpZW50TGltaXQgPSBzaGFyZWRDbGllbnRMaW1pdCgpLmxvYWQoc3RkOjptZW1v
cnlfb3JkZXJfYWNxdWlyZSk7Ci0gICAgICAgIENsaWVudE9mZnNldCBjbGllbnRPZmZzZXQgPSBz
aGFyZWRDbGllbnRPZmZzZXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOwotI2Vu
ZGlmCiAgICAgICAgIGlmICghY2xpZW50TGltaXQgJiYgKGNsaWVudE9mZnNldCA9PSBDbGllbnRP
ZmZzZXQ6OnNlcnZlcklzU2xlZXBpbmdUYWcgfHwgIWNsaWVudE9mZnNldCkpCiAgICAgICAgICAg
ICBicmVhazsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgICAg
IG1fYnVmZmVyLmNsaWVudFdhaXRTZW1hcGhvcmUoKS53YWl0Rm9yKHRpbWVvdXQpOwotI2Vsc2UK
LSAgICAgICAgVGhyZWFkOjp5aWVsZCgpOwotI2VuZGlmCiAgICAgICAgIGlmICh0aW1lb3V0LmRp
ZFRpbWVPdXQoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQotI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgLy8gSW4gY2FzZSB0aGUgdHJh
bnNhY3Rpb24gd2FzIGNhbmNlbGxlZCwgdW5kbyB0aGUgdHJhbnNhY3Rpb24gbWFya2VyLgogICAg
IHNoYXJlZENsaWVudExpbWl0KCkuc3RvcmUoc3RhdGljX2Nhc3Q8Q2xpZW50TGltaXQ+KDApLCBz
dGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKLSNlbmRpZgogICAgIG1fY2xpZW50T2Zmc2V0ID0g
MDsKICAgICByZXR1cm4gYWxpZ25lZFNwYW4obV9jbGllbnRPZmZzZXQsIDApOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uV29ya1F1
ZXVlLmNwcAppbmRleCA2NThlNjQ5MjRkZTBlYzAyYWUyMWE0YzliODlkMTkzN2Q3NGRiZTFhLi4z
YzcwYTZlMDhkZTY5NjljNzIzOWJhNTI3NjZhOTI5NWRlNzMzYjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNw
cApAQCAtMjksOSArMjksNyBAQAogbmFtZXNwYWNlIElQQyB7CiAKIFN0cmVhbUNvbm5lY3Rpb25X
b3JrUXVldWU6OlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUoY29uc3QgY2hhciogbmFtZSkKLSNp
ZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIDogbV9uYW1lKG5hbWUpCi0j
ZW5kaWYKIHsKIH0KIApAQCAtNjMsMjggKzYxLDIyIEBAIHZvaWQgU3RyZWFtQ29ubmVjdGlvbldv
cmtRdWV1ZTo6cmVtb3ZlU3RyZWFtQ29ubmVjdGlvbihTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFz
CiAgICAgICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlKGNvbm5lY3Rpb24pOwogICAgICAgICBBU1NF
UlQoIW1fc2hvdWxkUXVpdCk7IC8vIFJlLWVudGVyaW5nIGR1cmluZyBzaHV0ZG93biBub3Qgc3Vw
cG9ydGVkLgogICAgIH0KLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAg
IG1fd2FrZVVwU2VtYXBob3JlLnNpZ25hbCgpOwotI2VuZGlmCiB9CiAKIHZvaWQgU3RyZWFtQ29u
bmVjdGlvbldvcmtRdWV1ZTo6c3RvcCgpCiB7CiAgICAgbV9zaG91bGRRdWl0ID0gdHJ1ZTsKLSNp
ZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIGlmICghbV9wcm9jZXNzaW5n
VGhyZWFkKQogICAgICAgICByZXR1cm47CiAgICAgbV93YWtlVXBTZW1hcGhvcmUuc2lnbmFsKCk7
CiAgICAgbV9wcm9jZXNzaW5nVGhyZWFkLT53YWl0Rm9yQ29tcGxldGlvbigpOwogICAgIG1fcHJv
Y2Vzc2luZ1RocmVhZCA9IG51bGxwdHI7Ci0jZW5kaWYKIH0KIAogdm9pZCBTdHJlYW1Db25uZWN0
aW9uV29ya1F1ZXVlOjp3YWtlVXAoKQogewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9S
TShXSU4pCiAgICAgbV93YWtlVXBTZW1hcGhvcmUuc2lnbmFsKCk7Ci0jZW5kaWYKIH0KIAogSVBD
OjpTZW1hcGhvcmUmIFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU6Ondha2VVcFNlbWFwaG9yZSgp
CkBAIC05NCw3ICs4Niw2IEBAIElQQzo6U2VtYXBob3JlJiBTdHJlYW1Db25uZWN0aW9uV29ya1F1
ZXVlOjp3YWtlVXBTZW1hcGhvcmUoKQogCiB2b2lkIFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU6
Ondha2VVcFByb2Nlc3NpbmdUaHJlYWQoKQogewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShXSU4pCiAgICAgaWYgKG1fcHJvY2Vzc2luZ1RocmVhZCkgewogICAgICAgICBtX3dha2VV
cFNlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTExLDcgKzEwMiw2IEBA
IHZvaWQgU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6d2FrZVVwUHJvY2Vzc2luZ1RocmVhZCgp
CiAgICAgICAgIH0KICAgICB9OwogICAgIG1fcHJvY2Vzc2luZ1RocmVhZCA9IFRocmVhZDo6Y3Jl
YXRlKG1fbmFtZSwgV1RGTW92ZSh0YXNrKSwgVGhyZWFkVHlwZTo6R3JhcGhpY3MsIFRocmVhZDo6
UU9TOjpVc2VySW50ZXJhY3RpdmUpOwotI2VuZGlmCiB9CiAKIHZvaWQgU3RyZWFtQ29ubmVjdGlv
bldvcmtRdWV1ZTo6cHJvY2Vzc1N0cmVhbXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oCmluZGV4IDY2OTA0ZjY2ZmMy
N2M1MjI2YzRjMzE3YjdiZmY1Mjc1ZTU1Mjg0MmMuLjRjNDU3YzJmNTQ0NmFjMDEwNTY4NjJmYjE2
YTliODk3MjczYjE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9TdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmgKQEAgLTUzLDkgKzUzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHdha2VVcFByb2Nlc3NpbmdUaHJlYWQoKTsKICAgICB2b2lkIHByb2Nlc3NTdHJl
YW1zKCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKQogICAgIGNvbnN0
IGNoYXIqIGNvbnN0IG1fbmFtZTsKLSNlbmRpZgogCiAgICAgU2VtYXBob3JlIG1fd2FrZVVwU2Vt
YXBob3JlOwogICAgIFJlZlB0cjxUaHJlYWQ+IG1fcHJvY2Vzc2luZ1RocmVhZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHAK
aW5kZXggMDA0NzBlMGZmNGIzOGNkOTk0ODA2YjU0Zjk3NmJmOGMwMDg0MmQ0MS4uNmE3YWUwMmIx
ZWJjNzQ2MjQ1YjQ5OTYyOGQ0YjEyNTdkZjRlYmY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTg4LDE3ICs4
OCwxMiBAQCB2b2lkIFN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlOjpyZWxlYXNlKHNpemVfdCBy
ZWFkU2l6ZSkKICAgICByZWFkU2l6ZSA9IHN0ZDo6bWF4KHJlYWRTaXplLCBtaW5pbXVtTWVzc2Fn
ZVNpemUpOwogICAgIFNlcnZlck9mZnNldCBzZXJ2ZXJPZmZzZXQgPSBzdGF0aWNfY2FzdDxTZXJ2
ZXJPZmZzZXQ+KHdyYXBPZmZzZXQoYWxpZ25PZmZzZXQobV9zZXJ2ZXJPZmZzZXQpICsgcmVhZFNp
emUpKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgU2VydmVy
T2Zmc2V0IG9sZFNlcnZlck9mZnNldCA9IHNoYXJlZFNlcnZlck9mZnNldCgpLmV4Y2hhbmdlKHNl
cnZlck9mZnNldCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbCk7CiAgICAgLy8gSWYgdGhlIGNs
aWVudCB3cm90ZSBvdmVyIHNlcnZlck9mZnNldCwgaXQgbWVhbnMgdGhlIGNsaWVudCBpcyB3YWl0
aW5nLgogICAgIGlmIChvbGRTZXJ2ZXJPZmZzZXQgPT0gU2VydmVyT2Zmc2V0OjpjbGllbnRJc1dh
aXRpbmdUYWcpCiAgICAgICAgIG1fYnVmZmVyLmNsaWVudFdhaXRTZW1hcGhvcmUoKS5zaWduYWwo
KTsKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVCghKG9sZFNlcnZlck9mZnNldCAmIFNlcnZlck9m
ZnNldDo6Y2xpZW50SXNXYWl0aW5nVGFnKSk7Ci0jZWxzZQotICAgIHNoYXJlZFNlcnZlck9mZnNl
dCgpLnN0b3JlKHNlcnZlck9mZnNldCwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7Ci0gICAg
Ly8gSVBDOjpTZW1hcGhvcmUgbm90IGltcGxlbWVudGVkIGZvciB0aGUgcGxhdGZvcm0uIENsaWVu
dCB3aWxsIHBvbGwgYW5kIHlpZWxkLgotI2VuZGlmCiAKICAgICBtX3NlcnZlck9mZnNldCA9IHNl
cnZlck9mZnNldDsKIH0KQEAgLTEwNiwxNyArMTAxLDEyIEBAIHZvaWQgU3RyZWFtU2VydmVyQ29u
bmVjdGlvbkJhc2U6OnJlbGVhc2Uoc2l6ZV90IHJlYWRTaXplKQogdm9pZCBTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uQmFzZTo6cmVsZWFzZUFsbCgpCiB7CiAgICAgc2hhcmVkU2VydmVyTGltaXQoKS5z
dG9yZShzdGF0aWNfY2FzdDxTZXJ2ZXJMaW1pdD4oMCksIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVh
c2UpOwotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pCiAgICAgU2VydmVyT2Zm
c2V0IG9sZFNlcnZlck9mZnNldCA9IHNoYXJlZFNlcnZlck9mZnNldCgpLmV4Y2hhbmdlKHN0YXRp
Y19jYXN0PFNlcnZlck9mZnNldD4oMCksIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOwogICAg
IC8vIElmIHRoZSBjbGllbnQgd3JvdGUgb3ZlciBzZXJ2ZXJPZmZzZXQsIGl0IG1lYW5zIHRoZSBj
bGllbnQgaXMgd2FpdGluZy4KICAgICBpZiAob2xkU2VydmVyT2Zmc2V0ID09IFNlcnZlck9mZnNl
dDo6Y2xpZW50SXNXYWl0aW5nVGFnKQogICAgICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBo
b3JlKCkuc2lnbmFsKCk7CiAgICAgZWxzZQogICAgICAgICBBU1NFUlQoIShvbGRTZXJ2ZXJPZmZz
ZXQgJiBTZXJ2ZXJPZmZzZXQ6OmNsaWVudElzV2FpdGluZ1RhZykpOwotI2Vsc2UKLSAgICBzaGFy
ZWRTZXJ2ZXJPZmZzZXQoKS5zdG9yZShzdGF0aWNfY2FzdDxTZXJ2ZXJPZmZzZXQ+KDApLCBzdGQ6
Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKLSAgICAvLyBJUEM6OlNlbWFwaG9yZSBub3QgaW1wbGVt
ZW50ZWQgZm9yIHRoZSBwbGF0Zm9ybS4gQ2xpZW50IHdpbGwgcG9sbCBhbmQgeWllbGQuCi0jZW5k
aWYKICAgICBtX3NlcnZlck9mZnNldCA9IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL3VuaXgvSVBDU2VtYXBob3JlVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy91bml4L0lQQ1NlbWFwaG9yZVVuaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4Y2Uw
YmJkYzFmNDRmNjdlNjViMDdiMTU5ZmNlM2Q2ZTYyYzUxODYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0lQQ1NlbWFwaG9yZVVuaXguY3BwCkBAIC0w
LDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SVBDU2VtYXBob3JlLmgiCisKK25hbWVzcGFjZSBJUEMgeworCitTZW1hcGhvcmU6OlNlbWFwaG9y
ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1NlbWFwaG9yZTo6U2VtYXBo
b3JlKFNlbWFwaG9yZSYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitTZW1h
cGhvcmU6On5TZW1hcGhvcmUoKSA9IGRlZmF1bHQ7CisKK1NlbWFwaG9yZSYgU2VtYXBob3JlOjpv
cGVyYXRvcj0oU2VtYXBob3JlJiYpID0gZGVmYXVsdDsKKwordm9pZCBTZW1hcGhvcmU6OnNpZ25h
bCgpCit7Cit9CisKK3ZvaWQgU2VtYXBob3JlOjp3YWl0KCkKK3sKK30KKworYm9vbCBTZW1hcGhv
cmU6OndhaXRGb3IoVGltZW91dCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU2Vt
YXBob3JlOjplbmNvZGUoRW5jb2RlciYpIGNvbnN0Cit7Cit9CisKK09wdGlvbmFsPFNlbWFwaG9y
ZT4gU2VtYXBob3JlOjpkZWNvZGUoRGVjb2RlciYpCit7CisgICAgcmV0dXJuIFNlbWFwaG9yZSB7
IH07Cit9CisKK3ZvaWQgU2VtYXBob3JlOjpkZXN0cm95KCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtUGxheVN0YXRpb24uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtUGxheVN0YXRpb24uY21ha2UKaW5kZXggNDMyMWM2
NWM2ZTQyZjI4ZDUyYTFlNjJlYTExMmNlNDY0ZjUzYzRjNC4uOGI3NmI2MDY1M2IxYjMxYWQzYjhj
OWU3ZDdiMzY3ZDlmMmZjYTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVBs
YXlTdGF0aW9uLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1QbGF5U3RhdGlvbi5j
bWFrZQpAQCAtNTIsNiArNTIsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogCiAgICAg
UGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCiAgICAgUGxhdGZvcm0vSVBDL3Vu
aXgvQ29ubmVjdGlvblVuaXguY3BwCisgICAgUGxhdGZvcm0vSVBDL3VuaXgvSVBDU2VtYXBob3Jl
VW5peC5jcHAKIAogICAgIFBsYXRmb3JtL2NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0NsYXNzaWZpZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGNiZjY3ZTg3ZjU5MGY4MDJiNjBkY2I4
Mzk1MmRhYzA0YThjODM4MWMuLmQ2YWRiZWUzMjRiN2RhZWU4MjdiNGUyOWY2ODVhNGY3ZTIxOTcz
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dApAQCAtMTQ2LDcgKzE0Niw2IEBAIFBsYXRmb3JtL0lQQy9BdHRhY2ht
ZW50LmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBAbm8tdW5pZnkK
IFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9FbmNvZGVy
LmNwcCBAbm8tdW5pZnkKLVBsYXRmb3JtL0lQQy9JUENTZW1hcGhvcmUuY3BwIEBuby11bmlmeQog
UGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvTWVz
c2FnZVJlY2VpdmVRdWV1ZU1hcC5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGY4ZGJkMmFiN2My
ZTA0ZjVmOWI1MWRhMGNmNTQ2OTk0Y2Y2YzJhYWMuLjgxNjVmZmU5OGE2YmM2MjA4NjViNmZjN2Nl
NGRhMzNjZTk1OGY2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtNTIsNiArNTIsNyBAQCBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAogCiBQbGF0Zm9ybS9JUEMv
dW5peC9BdHRhY2htZW50VW5peC5jcHAKIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4
LmNwcAorUGxhdGZvcm0vSVBDL3VuaXgvSVBDU2VtYXBob3JlVW5peC5jcHAKIAogUGxhdGZvcm0v
Y2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQKaW5kZXggN2Y5NzY3ZGNmNzRhZGViOWRhMzcxZGEwZjRmYjg0OTg3NzgzZDEzMS4u
MDc3NWFjZWMyNzljODczYjJmZDgxYzAyYzI5NjI3NjNmZjQ5N2RiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0CkBAIC01Miw2ICs1Miw3IEBAIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuY3BwCiAKIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAogUGxhdGZv
cm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCitQbGF0Zm9ybS9JUEMvdW5peC9JUENTZW1h
cGhvcmVVbml4LmNwcAogCiBQbGF0Zm9ybS9jbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NDbGFzc2lmaWVyLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzYjRhMWJlMzczNDhlN2E4NjFhOTM5YThiMjMyNGJjYjJhZjI4
NzliLi5jZjM1Y2JmZGEzYWViYmQ5MmNiODc3YzJkYWY3ZTFiYmZlY2Y1Nzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2MDAsNyAr
MTYwMCw2IEBACiAJCUExRUYzNkQ1MjU4MUY3RUIwMDkwQjAyQSAvKiBNZWRpYUZvcm1hdFJlYWRl
ci5idW5kbGUgaW4gQ29weSBQbHVnLWlucyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMTZFNjYwMDI1ODE5MzA4MDBFRTE3NDkgLyogTWVkaWFGb3JtYXRSZWFkZXIuYnVuZGxl
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFJlbW92ZUhlYWRlcnNPbkNvcHksICk7IH07
IH07CiAJCUExRkI2ODI0MUY2RTUxODIwMEM0M0Y5RiAvKiBXS0NyYXNoUmVwb3J0ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRkI2ODIyMUY2RTUx
ODIwMEM0M0Y5RiAvKiBXS0NyYXNoUmVwb3J0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMzFGNjBBNDI1Q0M3REI5MDBBRjE0RjQgLyogSVBD
U2VtYXBob3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMzFGNjBBMjI1Q0M3REI4MDBBRjE0RjQgLyogSVBDU2VtYXBob3JlLmggKi87IH07Ci0JCUEz
MUY2MEE1MjVDQzdEQjkwMEFGMTRGNCAvKiBJUENTZW1hcGhvcmUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMxRjYwQTMyNUNDN0RCODAwQUYxNEY0
IC8qIElQQ1NlbWFwaG9yZS5jcHAgKi87IH07CiAJCUE1MTNGNTQwMjE1NEE1RDcwMDY2Mjg0MSAv
KiBXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTUxM0Y1M0UyMTU0QTVDQzAwNjYyODQxIC8qIFdlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyLmggKi87IH07CiAJCUE1MThCNUQyMUZFMUQ1NUIwMEY5RkEyOCAv
KiBXS0luc3BlY3RvcldLV2ViVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTUxOEI1RDAxRkUxRDU1QjAwRjlGQTI4IC8qIFdLSW5zcGVjdG9yV0tX
ZWJWaWV3LmggKi87IH07CiAJCUE1NDI5M0E0MTk1QTQzREEwMDI3ODJDNyAvKiBXS0luc3BlY3Rv
ck5vZGVTZWFyY2hHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0MjkzQTIxOTVBNDNDNjAwMjc4MkM3IC8qIFdLSW5zcGVj
dG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CkBAIC01MDU4LDcgKzUwNTcs
NiBAQAogCQlBMUZCNjgyMjFGNkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLQ3Jhc2hSZXBvcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMUZCNjgyMzFGNkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tDcmFzaFJlcG9ydGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMzFGNjBBMjI1Q0M3REI4MDBBRjE0RjQgLyogSVBDU2VtYXBob3JlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElQQ1NlbWFwaG9yZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBMzFGNjBBMzI1Q0M3REI4MDBBRjE0RjQgLyogSVBDU2VtYXBo
b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElQQ1NlbWFwaG9y
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMUY2MEE2MjVDQzdEQ0YwMEFG
MTRGNCAvKiBJUENTZW1hcGhvcmVEYXJ3aW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSVBDU2VtYXBob3JlRGFyd2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTM4QTEyRTEyM0M5M0FDNzAwRkFCRkE5IC8qIFRleHRDaGVja2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDaGVja2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTM5MzdCNjEyM0NEMUI5QjAwNUIyQTJFIC8qIFdlYlBy
ZWZlcmVuY2VzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJQcmVmZXJlbmNlc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NzA0Myw3ICs3MDQxLDYgQEAKIAkJCQk5QkQ4QUI0OTI1ODIwRTUyMDA1Mzg2RjggLyogRm9udFJl
ZmVyZW5jZS5oICovLAogCQkJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJl
ZmVyZW5jZS5oICovLAogCQkJCUMwQ0U3MkFDMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNz
YWdlLmggKi8sCi0JCQkJQTMxRjYwQTMyNUNDN0RCODAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5j
cHAgKi8sCiAJCQkJQTMxRjYwQTIyNUNDN0RCODAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5oICov
LAogCQkJCTlCRjVFQzYzMjU0MTBFOTkwMDk4NEU3NyAvKiBKU0lQQ0JpbmRpbmcuY3BwICovLAog
CQkJCTlCNDc5MDhFMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCAqLywKQEAgLTEz
OTE1LDcgKzEzOTEyLDYgQEAKIAkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxl
WFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0MjE0NjU2
MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMjc0OUY2NDUyMTQ2NTYxRTAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTMxRjYwQTUyNUNDN0RCOTAwQUYxNEY0IC8qIElQ
Q1NlbWFwaG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkY1RUM2NDI1NDExNDU2MDA5ODRF
NzcgLyogSlNJUENCaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQxMjEyQ0Y5
RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQy
MjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDkxZjEyNDk1OTQ1MzlmYjMz
M2RiYTY2MjlhMmFmYWE2MTBhODc4ZmMuLjJkM2UzNzY5ZjdhMjc0N2M4ZGY1OTk4YzZkZTIzZGU0
YjA2YzllOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAg
LTE4MCwxMSArMTgwLDcgQEAgU2hhcmVkTWVtb3J5KiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OnNoYXJlZE1lbW9yeUZvckdldEltYWdlRGF0YShzaXplX3QgZGEKIGJvb2wgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yR2V0SW1hZ2VEYXRhVG9Db21wbGV0ZShJUEM6OlRp
bWVvdXQgdGltZW91dCkKIHsKICAgICBBU1NFUlQobV9nZXRJbWFnZURhdGFTZW1hcGhvcmUpOwot
I2lmIE9TKERBUldJTikKICAgICByZXR1cm4gbV9nZXRJbWFnZURhdGFTZW1hcGhvcmUtPndhaXRG
b3IodGltZW91dCk7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAKIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZXN0cm95R2V0SW1hZ2VEYXRhU2hhcmVkTWVt
b3J5KCkKQEAgLTMyNiw5ICszMjIsNyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6ZGlkQXBwZW5kRGF0YShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbgogICAgIGlm
ICghd2FzRW1wdHkgfHwgZGlkQ2hhbmdlSXRlbUJ1ZmZlciA9PSBEaXNwbGF5TGlzdDo6RGlkQ2hh
bmdlSXRlbUJ1ZmZlcjo6WWVzKSB7CiAgICAgICAgIGlmIChtX2RlZmVycmVkV2FrZXVwTWVzc2Fn
ZUFyZ3VtZW50cykgewogICAgICAgICAgICAgaWYgKHNoYXJlZEhhbmRsZS0+dHJ5VG9SZXN1bWUo
eyBtX2RlZmVycmVkV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy0+b2Zmc2V0LCBtX2RlZmVycmVkV2Fr
ZXVwTWVzc2FnZUFyZ3VtZW50cy0+ZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIudG9V
SW50NjQoKSB9KSkgewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgICAgIG1fcmVz
dW1lRGlzcGxheUxpc3RTZW1hcGhvcmUuc2lnbmFsKCk7Ci0jZW5kaWYKICAgICAgICAgICAgICAg
ICBtX2RlZmVycmVkV2FrZXVwTWVzc2FnZUFyZ3VtZW50cyA9IFdURjo6bnVsbG9wdDsKICAgICAg
ICAgICAgICAgICBtX3JlbWFpbmluZ0l0ZW1zVG9BcHBlbmRCZWZvcmVTZW5kaW5nV2FrZXVwID0g
MDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoIS0tbV9yZW1haW5pbmdJdGVtc1RvQXBwZW5kQmVm
b3JlU2VuZGluZ1dha2V1cCkgewpAQCAtMzQzLDkgKzMzNyw3IEBAIHZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpkaWRBcHBlbmREYXRhKGNvbnN0IERpc3BsYXlMaXN0OjpJdGVtQnVm
ZmVySGFuCiAKICAgICBhdXRvIG9mZnNldFRvUmVhZCA9IHNoYXJlZEhhbmRsZS0+d3JpdGFibGVP
ZmZzZXQoKSAtIG51bWJlck9mQnl0ZXM7CiAgICAgaWYgKHNoYXJlZEhhbmRsZS0+dHJ5VG9SZXN1
bWUoeyBvZmZzZXRUb1JlYWQsIGRlc3RpbmF0aW9uSW1hZ2VCdWZmZXIudG9VSW50NjQoKSB9KSkg
ewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBtX3Jlc3VtZURpc3BsYXlMaXN0U2VtYXBo
b3JlLnNpZ25hbCgpOwotI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCAzNmM1MjU5NGNjOWQ5N2YwY2EyNDc1OTI5
MWI1Yjc2ZGUwNWE2MTQyLi5kN2U3ZjJkMWQwYzMzNzIwNmE2ZTQyOGU5NzU5YWUyNjFiNmY5MDEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC03NCw3ICs3NCw2IEBA
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhCiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpzdGFydFJlbmRlcmluZ1RocmVhZCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
QVNTRVJUKCFtX3JlbmRlclRocmVhZCk7CiAKICAgICBhdXRvIG9mZlRocmVhZFJlbmRlcmluZyA9
IFt0aGlzXSgpIG11dGFibGUgewpAQCAtODcsMTIgKzg2LDEwIEBAIHZvaWQgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdGFydFJlbmRlcmluZ1RocmVhZCgpCiAgICAgICAgIH0gd2hpbGUg
KCFtX3Nob3VsZFN0b3BUaHJlYWQpOwogICAgIH07CiAgICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJl
YWQ6OmNyZWF0ZSgiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHJlbmRlciB0aHJlYWQiLCBX
VEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyksIFRocmVhZFR5cGU6OkF1ZGlvLCBUaHJlYWQ6OlFP
Uzo6VXNlckludGVyYWN0aXZlKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZ1RocmVhZCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgaWYgKCFtX3JlbmRlclRocmVhZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDAsNyAr
OTcsNiBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZ1Ro
cmVhZCgpCiAgICAgbV9yZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgbV9yZW5kZXJUaHJl
YWQtPndhaXRGb3JDb21wbGV0aW9uKCk7CiAgICAgbV9yZW5kZXJUaHJlYWQgPSBudWxscHRyOwot
I2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpjb25uZWN0VG9H
UFVQcm9jZXNzKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>