<?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>239576</bug_id>
          
          <creation_ts>2022-04-20 16:34:02 -0700</creation_ts>
          <short_desc>Adopt RobinHoodHashMap / RobinHoodHashSet more broadly in WebCore</short_desc>
          <delta_ts>2022-04-21 16:34:42 -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>WebCore Misc.</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mkwst</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1863129</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-20 16:34:02 -0700</bug_when>
    <thetext>Adopt RobinHoodHashMap / RobinHoodHashSet more broadly in WebCore to avoid wasting memory in hash tables. RobinHoodHashMap / RobinHoodHashSet have more restrictions on what key types they work with and may result in slower performance but they have a much higher load factor that the regular HashMap / HashSet, thus reducing memory usage. This patch adopts RobinHoodHashMap / RobinHoodHashSet on non performance sensitive maps / sets in WebCore that have compatible keys (String / AtomString / URL because they cache their hash).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863130</commentid>
    <comment_count>1</comment_count>
      <attachid>458021</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-20 16:41:12 -0700</bug_when>
    <thetext>Created attachment 458021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863182</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-20 20:31:53 -0700</bug_when>
    <thetext>Interesting. Some of audio tests are failing because of (probably) hashtable ordering. Either or both of,

1. Our implementation is relying on HashTable ordering, which is undefined.
2. The test result is relying on HashTable ordering, which is undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863183</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-20 20:33:36 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Interesting. Some of audio tests are failing because of (probably) hashtable
&gt; ordering. Either or both of,
&gt; 
&gt; 1. Our implementation is relying on HashTable ordering, which is undefined.
&gt; 2. The test result is relying on HashTable ordering, which is undefined.

I&apos;ll fix it tomorrow, shouldn&apos;t be difficult. I am waiting on perf A/B results anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863185</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-20 20:33:54 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; (In reply to Yusuke Suzuki from comment #2)
&gt; &gt; Interesting. Some of audio tests are failing because of (probably) hashtable
&gt; &gt; ordering. Either or both of,
&gt; &gt; 
&gt; &gt; 1. Our implementation is relying on HashTable ordering, which is undefined.
&gt; &gt; 2. The test result is relying on HashTable ordering, which is undefined.
&gt; 
&gt; I&apos;ll fix it tomorrow, shouldn&apos;t be difficult. I am waiting on perf A/B
&gt; results anyway.

Nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863199</commentid>
    <comment_count>5</comment_count>
      <attachid>458037</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-20 21:19:23 -0700</bug_when>
    <thetext>Created attachment 458037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863304</commentid>
    <comment_count>6</comment_count>
      <attachid>458066</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-21 08:43:03 -0700</bug_when>
    <thetext>Created attachment 458066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863305</commentid>
    <comment_count>7</comment_count>
      <attachid>458067</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-21 08:44:22 -0700</bug_when>
    <thetext>Created attachment 458067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863367</commentid>
    <comment_count>8</comment_count>
      <attachid>458081</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-21 12:21:06 -0700</bug_when>
    <thetext>Created attachment 458081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863412</commentid>
    <comment_count>9</comment_count>
      <attachid>458081</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-21 14:28:17 -0700</bug_when>
    <thetext>Comment on attachment 458081
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863459</commentid>
    <comment_count>10</comment_count>
      <attachid>458081</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-04-21 16:21:46 -0700</bug_when>
    <thetext>Comment on attachment 458081
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=458081&amp;action=review

&gt; Source/WebCore/ChangeLog:15
&gt; +        This is perf-neutral on all our benchmarks according to A/B testing.

Does memory use go down?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863463</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-21 16:28:50 -0700</bug_when>
    <thetext>Committed r293195 (249870@main): &lt;https://commits.webkit.org/249870@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458081.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863465</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-21 16:29:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/92128851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863469</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-21 16:34:42 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #10)
&gt; Comment on attachment 458081 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458081&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        This is perf-neutral on all our benchmarks according to A/B testing.
&gt; 
&gt; Does memory use go down?

I didn&apos;t check PLUM on iOS (I can look at the bot now that it landed). Sadly it didn&apos;t move the needle on Membuster on macOS according to A/B testing, I was hoping it would.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458021</attachid>
            <date>2022-04-20 16:41:12 -0700</date>
            <delta_ts>2022-04-20 21:19:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239576-20220420164111.patch</filename>
            <type>text/plain</type>
            <size>110281</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk2YzUyNjEzYTg4YmFkNWMzN2VmNTVi
Y2MyODBkYjYzNThjMGMwMDcuLmM2NDlkYTc4YzQ1MWNjNjk3NmM2OWI2MDIzMTY4MzA1NDkzOWQ1
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29k
SGFzaFNldCBtb3JlIGJyb2FkbHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdXNpbmcgUm9iaW5Ib29kSGFzaE1hcCAvIFJv
YmluSG9vZEhhc2hTZXQgd2l0aCBVUkwga2V5cyBzaW5jZSBhIFVSTCB3cmFwcyBhIFN0cmluZwor
ICAgICAgICBhbmQgdXNlcyBpdHMgaW50ZXJuYWwgU3RyaW5nJ3MgY2FjaGVkIGhhc2ggYXMgaGFz
aC4KKworICAgICAgICAqIHd0Zi9VUkxIYXNoLmg6CisKIDIwMjItMDQtMjAgIENhdGhpZSBDaGVu
ICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFBhcnNpbmcgb2YgY29udGFpbi1p
bnRyaW5zaWMtc2l6ZSBhbmQgYWRkaW5nIGEgcnVudGltZSBmbGFnIGZvciBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGViNjY3N2EwMzQwNzRjYWMzNDAyMTQ2Zjc3MzgzMDE2OGNkYTgzZmEuLmVlZDI0YmY2NWZh
NmQ2MWYxNDdhNGJiMGViNjJkOGU3OWJkYjIyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjQg
QEAKKzIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBtb3JlIGJyb2FkbHkg
aW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRvcHQgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5
IGluIFdlYkNvcmUgdG8gYXZvaWQgd2FzdGluZyBtZW1vcnkgaW4gaGFzaCB0YWJsZXMuCisgICAg
ICAgIFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IGhhdmUgbW9yZSByZXN0cmlj
dGlvbnMgb24gd2hhdCBrZXkgdHlwZXMgdGhleSB3b3JrIHdpdGggYW5kIG1heSByZXN1bHQKKyAg
ICAgICAgaW4gc2xpZ2h0bHkgbG93ZXIgcGVyZm9ybWFuY2UgYnV0IHRoZXkgaGF2ZSBhIG11Y2gg
aGlnaGVyIGxvYWQgZmFjdG9yIHRoYXQgdGhlIHJlZ3VsYXIgSGFzaE1hcCAvIEhhc2hTZXQsCisg
ICAgICAgIHRodXMgcmVkdWNpbmcgbWVtb3J5IHVzYWdlLiBUaGlzIHBhdGNoIGFkb3B0cyBSb2Jp
bkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBvbiBub24gcGVyZm9ybWFuY2UKKyAgICAg
ICAgc2Vuc2l0aXZlIG1hcHMgLyBzZXRzIGluIFdlYkNvcmUgdGhhdCBoYXZlIGNvbXBhdGlibGUg
a2V5cyAoU3RyaW5nIC8gQXRvbVN0cmluZyAvIFVSTCBiZWNhdXNlIHRoZXkgY2FjaGUKKyAgICAg
ICAgdGhlaXIgaGFzaCkuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXRE
YXRhUmVnaXN0cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9M
ZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENN
ZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lz
dHJ5LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1NYXA6Om1hcCBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVj
dEZyb3plbktleVZhbHVlT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJvbVBh
cmFtZXRlck1hcFRvSlNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dFByb2Nlc3Nvcjo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRQcm9jZXNzb3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OnBhcmFtZXRlckRl
c2NyaXB0b3JNYXAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V1RGX1JFUVVJUkVTX0xPQ0spOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlVHJhY2tlcjo6cmVjb3JkRGVsZXRpbmdEYXRhYmFzZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBkb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21FbGVtZW50UmVnaXN0cnk6OnByb21pc2VNYXAp
OgorICAgICAgICAqIGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oOgorICAgICAgICAqIGRvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6
Om9ic2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246Ok11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbjo6cmVzZXRPYnNlcnZhdGlvbik6CisgICAgICAgICogZG9tL011dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAq
IGRvbS9Ob2RlLmg6CisgICAgICAgICogZG9tL1dpbmRvd0V2ZW50TG9vcC5jcHA6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRS
ZXNvdXJjZXNPYmplY3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0Rh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1Jlc291cmNlc0RhdGE6OmNsZWFyKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvcldvcmtlckFnZW50Lmg6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRBY3RpdmVDb250ZW50UnVsZUxp
c3RBY3Rpb25QYXR0ZXJucyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
cGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeU1lZGlhTGlzdERpcmVjdGl2ZS5oOgor
ICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXVEZfUkVRVUlSRVNfTE9DSyk6CisgICAgICAgICogcGxhdGZvcm0vU3RhdGljUGFzdGVi
b2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVUcmFja3NPZktpbmQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9VVElSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
eXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmlj
RmFtaWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0
YWJhc2VDb3JlVGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbToK
KyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Q3JlZGVudGlhbFN0b3JhZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZWZlcmVuY2VkU1ZHUmVzb3Vy
Y2VzLmg6CisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmlwU2NyaXB0U291cmNlcyk6CisgICAgICAgIChXZWJDb3Jl
Ojpwb3B1bGF0ZVNjcmlwdFNvdXJjZXNGcm9tRGlzayk6CisgICAgICAgIChXZWJDb3JlOjpSZWdp
c3RyYXRpb25EYXRhYmFzZTo6ZG9QdXNoQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZWdp
c3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWdp
c3RyYXRpb25TdG9yZTo6ZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2spOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2Vy
dmVyOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayk6CisgICAgICAgIChXZWJDb3JlOjpTV1Nl
cnZlcjo6dXBkYXRlV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjppbnN0YWxs
Q29udGV4dERhdGEpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
aDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OlNXU2VydmVyV29ya2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpkaWRTYXZlU2NyaXB0c1RvRGlz
ayk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgor
CiAyMDIyLTA0LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNvbWUgQXV0b3Njcm9sbENvbnRyb2xsZXIgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1OTE3
NDViYmIxNWI1Y2IxNWU4NzQyY2ZjNjIwZWY0NjZlZDY2ZjI3Li41ZjYyZDc1NjU5NjU0YzRiMTg0
YWIyYTc4MmM0MGYyOGEwMGE4NzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0
LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgUm9i
aW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5IGluIFdlYkNvcmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTU3Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IFJv
YmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUgYnJvYWRseSBpbiBXZWJLaXQg
dG8gYXZvaWQgd2FzdGluZyBtZW1vcnkgaW4gaGFzaCB0YWJsZXMuCisgICAgICAgIFJvYmluSG9v
ZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IGhhdmUgbW9yZSByZXN0cmljdGlvbnMgb24gd2hh
dCBrZXkgdHlwZXMgdGhleSB3b3JrIHdpdGggYW5kIG1heSByZXN1bHQKKyAgICAgICAgaW4gc2xp
Z2h0bHkgbG93ZXIgcGVyZm9ybWFuY2UgYnV0IHRoZXkgaGF2ZSBhIG11Y2ggaGlnaGVyIGxvYWQg
ZmFjdG9yIHRoYXQgdGhlIHJlZ3VsYXIgSGFzaE1hcCAvIEhhc2hTZXQsCisgICAgICAgIHRodXMg
cmVkdWNpbmcgbWVtb3J5IHVzYWdlLiBUaGlzIHBhdGNoIGFkb3B0cyBSb2Jpbkhvb2RIYXNoTWFw
IC8gUm9iaW5Ib29kSGFzaFNldCBvbiBub24gcGVyZm9ybWFuY2UKKyAgICAgICAgc2Vuc2l0aXZl
IG1hcHMgLyBzZXRzIGluIFdlYkNvcmUgdGhhdCBoYXZlIGNvbXBhdGlibGUga2V5cyAoU3RyaW5n
IC8gQXRvbVN0cmluZyAvIFVSTCBiZWNhdXNlIHRoZXkgY2FjaGUKKyAgICAgICAgdGhlaXIgaGFz
aCkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2spOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJh
dGlvbjo6YWxsb3dlZE5ldHdvcmtIb3N0cyBjb25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VDb25m
aWd1cmF0aW9uOjpzZXRBbGxvd2VkTmV0d29ya0hvc3RzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3NldExvYWRzRnJvbU5ldHdvcms6XSk6CisgICAgICAgICgtW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3NldEFsbG93ZWROZXR3b3JrSG9zdHM6XSk6CisKIDIwMjItMDQt
MjAgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhlcyBhZnRlciByMjkzMDUyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9VUkxIYXNoLmggYi9Tb3VyY2UvV1RGL3d0Zi9VUkxIYXNoLmgKaW5k
ZXggMjY5ZTJiNTk4NGMwNTliYWZiZjQyOTNkMGRmNDEzODE5NzE1YWNiOS4uOTdhM2VlNTVlZWZi
ZTc0ZGVlNmVjMGNkMGMxZmQyZmNiMGY4ZmUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VVJMSGFzaC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTEhhc2guaApAQCAtNDQsNiArNDQsNyBA
QCBzdHJ1Y3QgVVJMSGFzaCB7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGhhc0hhc2hJblZhbHVlID0gdHJ1ZTsKIH07CiAKIC8vIFVSTEhhc2ggaXMgdGhlIGRl
ZmF1bHQgaGFzaCBmb3IgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCmluZGV4IDc3ZDYwNGIwOGJiN2Y3
ZTM4YmNjYjM1NDViMzRjOGIxMzQzNTVlZjIuLjc3Njc2MjY0Nzg5YjI2NWUxMTM0OTg5YTJhMDkx
YjcyYTJiZDU4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCkBAIC0yOCw5ICsyOCw5IEBACiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKIAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAg
ICBJbml0RGF0YVJlZ2lzdHJ5KCk7CiAgICAgfkluaXREYXRhUmVnaXN0cnkoKTsKIAotICAgIEhh
c2hNYXA8QXRvbVN0cmluZywgSW5pdERhdGFUeXBlQ2FsbGJhY2tzPiBtX3R5cGVzOworICAgIE1l
bW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIEluaXREYXRhVHlwZUNhbGxi
YWNrcz4gbV90eXBlczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lv
bkNsZWFyS2V5LmgKaW5kZXggYTliNGQwYTM2M2VkNThiNGMwZDQyYTQzMmNlOTc4NGU3MWE3MWEy
MC4uZDUyMjNlNjUzMjJhMDU1NDNiZjBlOWNiNjkxYzUyZGJlYWY5Y2UxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vz
c2lvbkNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01F
RElBKQpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYWtQdHI8TGVn
YWN5Q0RNU2Vzc2lvbkNsaWVudD4gbV9jbGllbnQ7CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1f
aW5pdERhdGE7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj4gbV9jYWNoZWRL
ZXlzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPHVp
bnQ4X3Q+PiBtX2NhY2hlZEtleXM7CiAgICAgU3RyaW5nIG1fc2Vzc2lvbklkOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCVHJhbnNhY3Rpb24uaAppbmRleCBiZDBmY2E4Zjk3MTBkM2Y3N2M1Mjc2MjExMzgy
MGNkZDQyZmIwOGZmLi5mMmVmNDgxMDQxZTQwMzRhMzBlYjMxZjNjMGEyMzQxYjdjODNlNzA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRl
SURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUg
IklEQlRyYW5zYWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFw
PElEQlJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNRTGl0ZUlEQkN1cnNvcj4+
IG1fY3Vyc29yczsKICAgICBIYXNoU2V0PFNRTGl0ZUlEQkN1cnNvcio+IG1fYmFja2luZ1N0b3Jl
Q3Vyc29yczsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gbV9ibG9iVGVt
cG9yYXJ5QW5kU3RvcmVkRmlsZW5hbWVzOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2Jsb2JSZW1v
dmVkRmlsZW5hbWVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4g
bV9ibG9iUmVtb3ZlZEZpbGVuYW1lczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZVJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlUmVnaXN0cnkuaAppbmRleCBiN2RmZTQ0YjI1ZmM0NzcyMTc0YWE2NDZlNGI1OGMwYTMyZWUy
MjlkLi5hNzVlNDkzZDM1Mzc1NDY0MTEyMGRiNWFmMDMzZDU1Nzg2ODRhMjM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVn
aXN0cnkuaApAQCAtMzMsNyArMzMsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNp
bmNsdWRlICJVUkxSZWdpc3RyeS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIE1lZGlhU291cmNlUmVnaXN0cnkoKTsKLSAgICBIYXNoTWFwPFN0cmluZywg
UmVmUHRyPE1lZGlhU291cmNlPj4gbV9tZWRpYVNvdXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTb3VyY2U+PiBtX21lZGlhU291cmNl
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IGUxOGQ1NGQ0MDZjMzU3MzVj
NjQ5YmI3YTk3ZThlY2JjNzM0Njc2NjcuLmE0OTQxYjI5M2YyNjQ3MTcwYmM0YzlhZWExNmUzZTky
Y2I5OGYyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNs
aWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTMzLDcgKzEzNCw3IEBAIHBy
aXZhdGU6CiAgICAgT3B0aW9uU2V0PEdlc3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1ZXN0VHlw
ZXNGb3JDdXJyZW50R2VzdHVyZTsKICAgICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fY3Vy
cmVudEdlc3R1cmVUb2tlbjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fYXVkaW9P
dXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJ
ZDsKICAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDc0MzE4MGQy
OWJlYzUzNTdkZjBjMWU0ODJmZThhMjU2NGRiZTkwN2UuLjI0YmY1MWY4MzEzMWEyZDk5MjFmYTMy
OTI0YjI5ZTdhZWJkYjk5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmgKQEAgLTM4LDkgKzM4LDkgQEAKICNpbmNsdWRlICJTY3JpcHRX
cmFwcGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTFJlZ2lzdHJ5Lmgi
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFw
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX3ByaXZhdGU7CiAKLSAgICBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+PiBtX3RyYWNrU2V0OworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCiAgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggY2ZjYTZl
ZGYyMmRhNzI3NTI2NjBkMjI3NjA4MmQ5MDFmODM1NmQ3ZS4uMTlkMThkMTM2NzZkZDgyM2Q1ZGQz
YTZiZDM3MWVhMmNiMDY5NjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuaApAQCAtNDQsNiArNDQsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSB3ZWJydGMgewpAQCAtMTkwLDEz
ICsxOTEsMTMgQEAgcHJpdmF0ZToKICAgICBTZXRMb2NhbFNlc3Npb25EZXNjcmlwdGlvbk9ic2Vy
dmVyPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+IG1fc2V0TG9jYWxTZXNzaW9uRGVzY3JpcHRpb25P
YnNlcnZlcjsKICAgICBTZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlcjxMaWJXZWJS
VENNZWRpYUVuZHBvaW50PiBtX3NldFJlbW90ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyOwog
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbT4+IG1fcmVtb3RlU3RyZWFt
c0J5SWQ7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8
TWVkaWFTdHJlYW0+PiBtX3JlbW90ZVN0cmVhbXNCeUlkOwogICAgIEhhc2hNYXA8TWVkaWFTdHJl
YW1UcmFjayosIFZlY3RvcjxTdHJpbmc+PiBtX3JlbW90ZVN0cmVhbXNGcm9tUmVtb3RlVHJhY2s7
CiAKICAgICBib29sIG1faXNJbml0aWF0b3IgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fc3RhdHNM
b2dUaW1lcjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpNZWRpYVN0cmVhbUludGVyZmFjZT4+IG1fbG9jYWxTdHJlYW1zOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVk
aWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBtX3J0Y1NvY2tl
dEZhY3Rvcnk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAppbmRleCBmNTUwNzgw
YTgxZDYyNGYzMWQwZTE4MzM5M2U1NTE0MzUzNDBhMWMyLi43OGUzYmM5NGI5YWQwODEwY2NmNzAy
YjllYTE1ZDYyZjJlMDE2M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
Yi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJXZWJMb2NrTWFuYWdlclNuYXBzaG90LmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1Jv
YmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51
bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjYsOCArNjcsOCBAQCBwcml2YXRl
OgogCiAgICAgV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gbV9nbG9iYWxSZWdpc3RyeTsK
ICAgICBDbGllbnRPcmlnaW4gbV9jbGllbnRPcmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERl
cXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3Ry
aW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hlbGRMb2NrczsKKyAgICBGYXN0Um9iaW5Ib29kSGFz
aE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOwor
ICAgIEZhc3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxk
TG9ja3M7CiB9OwogCiBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxXZWJMb2NrUmVnaXN0cnko
KSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW1NYXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbU1hcC5oCmluZGV4IDFiZTM3ZGViOThiZWFiZDFlMWZlMTg0ZTUwN2JiMmEwM2Q1NTQxOTgu
LmFjYTQ3MTFiMjY3Y2FhOTg5MDU3MDA1YjQ5MGFkYWRiNzgzOGY4M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5oCkBAIC0yOSw4ICsyOSwx
MCBAQAogI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDEyICs1MCwxMiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBpbml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJik7CiAgICAgdm9pZCBhZGQoY29u
c3QgU3RyaW5nJiwgUmVmPEF1ZGlvUGFyYW0+JiYpOwogCi0gICAgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIFJlZjxBdWRpb1BhcmFtPj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9CisgICAg
Y29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWY8QXVkaW9QYXJh
bT4+JiBtYXAoKSBjb25zdCB7IHJldHVybiBtX21hcDsgfQogCiBwcml2YXRlOgogICAgIEF1ZGlv
UGFyYW1NYXAoKTsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8QXVkaW9QYXJhbT4+IG1fbWFw
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPEF1ZGlvUGFy
YW0+PiBtX21hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aAppbmRleCBmODIyZTJiODMxMTRmYjQwNzQ2MGIyNDgwY2JmNGQ2NjQyYzYwM2VhLi5jNzdkZDVl
YWM3MDFlMWMzYmIxOTM5YmM5MDk1ZGE5NDUyZDAwOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5o
PgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTgxLDcgKzgyLDcgQEAgcHJpdmF0ZToKIAogICAgIHNp
emVfdCBtX2N1cnJlbnRGcmFtZSB7IDAgfTsKICAgICBjb25zdCBmbG9hdCBtX3NhbXBsZVJhdGU7
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxKU0F1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0
cnVjdG9yPj4gbV9wcm9jZXNzb3JDb25zdHJ1Y3Rvck1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9i
aW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxKU0F1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0
cnVjdG9yPj4gbV9wcm9jZXNzb3JDb25zdHJ1Y3Rvck1hcDsKICAgICBMb2NrIG1fcHJvY2Vzc29y
c0xvY2s7CiAgICAgV2Vha0hhc2hTZXQ8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yLCBXVEY6OkVtcHR5
Q291bnRlciwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6Ok5vPiBtX3Byb2Nlc3Nv
cnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NvcnNMb2NrKTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YT4gbV9wZW5kaW5nUHJv
Y2Vzc29yQ29uc3RydWN0aW9uRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXggZDViNWE2MzMxZmUxYTJiN2Y5MzZhY2Y5
ZmJmMGQzZTViMjZiYzM3My4uM2JkMmIwMzg5ZjE2YjE4ODI5ZDYzYjQ2NWRkZTUyMGM3MTdjY2Iw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJBdWRpb05vZGUuaCIKICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNHbG9i
YWxPYmplY3Q7CkBAIC04Niw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPE1lc3NhZ2VQb3J0
PiBtX3BvcnQ7CiAgICAgTG9jayBtX3Byb2Nlc3NMb2NrOwogICAgIFJlZlB0cjxBdWRpb1dvcmts
ZXRQcm9jZXNzb3I+IG1fcHJvY2Vzc29yOyAvLyBTaG91bGQgb25seSBiZSB1c2VkIG9uIHRoZSBy
ZW5kZXJpbmcgdGhyZWFkLgotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsKKyAgICBNZW1vcnlDb21wYWN0TG9va3Vw
T25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFy
cmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsKICAgICBUaHJlYWQqIG1fd29ya2xldFRocmVhZCB7IG51
bGxwdHIgfTsKIAogICAgIC8vIEtlZXBzIHRoZSByZWZlcmVuY2Ugb2YgQXVkaW9CdXMgb2JqZWN0
cyBmcm9tIEF1ZGlvTm9kZUlucHV0IGFuZCBBdWRpb05vZGVPdXRwdXQgaW4gb3JkZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yLmNwcAppbmRleCAyODI0MDgyNWIyODRlN2IwODYzZDIyMDY5ZmQ4OGY0ZWVmNjRlOGUx
Li5jYjdlMmUzOTk5YjBkMjExYzY5N2YzNTdlYjhlODI3OWRiMzQ4MjBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNz
b3IuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBKU0Zsb2F0MzJBcnJheSogY29uc3RydWN0
SlNGbG9hdDMyQXJyYXkoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgdW5zCiAgICAgcmV0
dXJuIGpzQXJyYXk7CiB9CiAKLXN0YXRpYyBKU09iamVjdCogY29uc3RydWN0RnJvemVuS2V5VmFs
dWVPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNo
TWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVl
c01hcCkKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0RnJvemVuS2V5VmFsdWVPYmplY3QoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBNZW1vcnlDb21wYWN0TG9v
a3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9h
dEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiBwbGFpbk9iamVjdFN0cnVjdHVyZSA9IEpTRmluYWxP
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9i
amVjdFByb3RvdHlwZSgpLCAwKTsKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgYm9vbCBjb3B5
RGF0YUZyb21CdXNlc1RvSlNBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25z
dCBWZWN0bwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBjb3B5RGF0YUZyb21Q
YXJhbWV0ZXJNYXBUb0pTT2JqZWN0KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+
PiYgcGFyYW1WYWx1ZXNNYXAsIEpTT2JqZWN0KiBqc09iamVjdCkKK3N0YXRpYyBib29sIGNvcHlE
YXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0LCBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8
U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFw
LCBKU09iamVjdCoganNPYmplY3QpCiB7CiAgICAgaWYgKCFqc09iamVjdCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMjE4LDcgKzIxOCw3IEBAIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6QXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlJiBnbG9iYWxTY29wCiAg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiB9CiAKLXZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiBhcmdzLCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1
ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBI
YXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZh
bHVlc01hcCkKK3ZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgTWFya2VkQXJndW1lbnRCdWZmZXJC
YXNlJiBhcmdzLCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9y
PFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4m
IHBhcmFtVmFsdWVzTWFwKQogewogICAgIC8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB3ZSBj
YWNoZSB0aGUgYXJyYXlzIHBhc3NlZCB0byBKUyBhbmQgcmVjb25zdHJ1Y3QgdGhlbSBvbmx5IHdo
ZW4gdGhlIHRvcG9sb2d5IGNoYW5nZXMuCiAgICAgaWYgKCFjb3B5RGF0YUZyb21CdXNlc1RvSlNB
cnJheShnbG9iYWxPYmplY3QsIGlucHV0cywgdG9KU0FycmF5KG1fanNJbnB1dHMpKSkKQEAgLTIz
NCw3ICsyMzQsNyBAQCB2b2lkIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50
cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplYwogICAgIGFyZ3MuYXBwZW5kKG1f
anNQYXJhbVZhbHVlcy5nZXRWYWx1ZSgpKTsKIH0KIAotYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNz
b3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3Rv
cjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhj
ZXB0aW9uKQorYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9y
PFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0
cywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYg
dGhyZXdFeGNlcHRpb24pCiB7CiAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVu
IG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0
bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yLmgKaW5kZXggN2QyNTZlYTU1N2JiODY2YzE1MWM3MzQ4MzAyYzJkMTEwOTNmYjM5
OC4uM2NmOWNmZjBhNDIzMjNhZWJkMTI2MWU1YjNhYjRkMzY5MmNlZmJlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nv
ci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBN
ZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5nZXQoKTsgfQogCi0gICAgYm9vbCBw
cm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVm
PEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlv
bik7CisgICAgYm9vbCBwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5w
dXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RM
b29rdXBPbmx5Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zs
b2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKTsKIAogICAg
IEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGpzSW5wdXRzV3JhcHBlcigpIHsgcmV0dXJuIG1fanNJ
bnB1dHM7IH0KICAgICBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiBqc091dHB1dHNXcmFwcGVyKCkg
eyByZXR1cm4gbV9qc091dHB1dHM7IH0KQEAgLTY5LDcgKzcwLDcgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xldFByb2Nlc3NvcihBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSYsIGNvbnN0IEF1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEmKTsK
LSAgICB2b2lkIGJ1aWxkSlNBcmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVk
aW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFs
dWVzTWFwKTsKKyAgICB2b2lkIGJ1aWxkSlNBcmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMs
IGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApOwogCiAgICAg
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUmIG1fZ2xvYmFsU2NvcGU7CiAgICAgU3RyaW5nIG1fbmFt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmgKaW5kZXggNGFmZmFjMzNlMzQyNGMzZmFiNWFhNWIyYmVkMGQ3NDQ3NjcyMmZkNS4uNmUz
Yjg3ZjRlOGQxZDA3NmQ5OTQ2M2E5ZjdmN2NmMjg5MGUxODMxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaD4KKyNpbmNsdWRl
IDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtMjIzLDcgKzIyNCw3IEBA
IHB1YmxpYzoKICAgICBQZXJpb2RpY1dhdmUmIHBlcmlvZGljV2F2ZShPc2NpbGxhdG9yVHlwZSk7
CiAKICAgICB2b2lkIGFkZEF1ZGlvUGFyYW1EZXNjcmlwdG9ycyhjb25zdCBTdHJpbmcmIHByb2Nl
c3Nvck5hbWUsIFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4mJik7Ci0gICAgY29uc3QgSGFz
aE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4+JiBwYXJhbWV0ZXJEZXNj
cmlwdG9yTWFwKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJEZXNjcmlwdG9yTWFwOyB9Cisg
ICAgY29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVk
aW9QYXJhbURlc2NyaXB0b3I+PiYgcGFyYW1ldGVyRGVzY3JpcHRvck1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYpOwpAQCAtMzQ1LDcgKzM0Niw3IEBAIHByaXZh
dGU6CiAKICAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRwdXRQb3NpdGlvbjsKIAotICAgIEhhc2hN
YXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+PiBtX3BhcmFtZXRlckRlc2Ny
aXB0b3JNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0
b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+PiBtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXA7CiAKICAg
ICAvLyBUaGVzZSBhcmUgY2FjaGVkIHBlciBhdWRpbyBjb250ZXh0IGZvciBwZXJmb3JtYW5jZSBy
ZWFzb25zLiBUaGV5IGNhbm5vdCBiZQogICAgIC8vIHN0YXRpYyBiZWNhdXNlIHRoZXkgcmVseSBv
biB0aGUgc2FtcGxlIHJhdGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwCmluZGV4IDAxOGRiYjk5YjE4ZmI2N2I4YjBkYzA5Mzg4Mjc4MTdhYmRi
MmM2MjQuLjUzZmJlMzIwNTI0ZWE0YTRmZDRmMWQzOWYyY2QyNDlkMDU2ODU3MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01Niw2
ICs1Niw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCkBAIC0xODEsNyArMTgyLDcgQEAgc3RhdGljIEhhc2hNYXA8RGF0
YWJhc2VHVUlELCBIYXNoU2V0PERhdGFiYXNlKj4+JiBndWlkVG9EYXRhYmFzZU1hcCgpIFdURl9S
RVFVSVIKIAogc3RhdGljIGlubGluZSBEYXRhYmFzZUdVSUQgZ3VpZEZvck9yaWdpbkFuZE5hbWUo
Y29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkgV1RGX1JFUVVJUkVTX0xP
Q0soZ3VpZExvY2spCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5n
LCBEYXRhYmFzZUdVSUQ+PiBtYXA7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIERhdGFiYXNlR1VJRD4+IG1h
cDsKICAgICByZXR1cm4gbWFwLmdldCgpLmVuc3VyZShtYWtlU3RyaW5nKG9yaWdpbiwgJy8nLCBu
YW1lKSwgW10gewogICAgICAgICBzdGF0aWMgRGF0YWJhc2VHVUlEIGxhc3RVc2VkR1VJRDsKICAg
ICAgICAgcmV0dXJuICsrbGFzdFVzZWRHVUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IGE0ZjBjNzQ0NTIz
NzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIyOWYuLmI5ZDNjMzkyN2E3NTAwYzE5OGZmNzVhOGI2
NmEzYzgxNjIwOGYzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTk4NCw3ICs5ODQsNyBAQCB2b2lkIERh
dGFiYXNlVHJhY2tlcjo6cmVjb3JkRGVsZXRpbmdEYXRhYmFzZShjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbiwgYwogICAgIC8vIFdlIGRvbid0IHVzZSBIYXNoTWFwOjplbnN1cmUgaGVy
ZSB0byBhdm9pZCBtYWtpbmcgYW4gaXNvbGF0ZWQgY29weSBvZiB0aGUgb3JpZ2luIGV2ZXJ5IHRp
bWUuCiAgICAgYXV0byogbmFtZVNldCA9IG1fYmVpbmdEZWxldGVkLmdldChvcmlnaW4pOwogICAg
IGlmICghbmFtZVNldCkgewotICAgICAgICBhdXRvIG93bmVkU2V0ID0gbWFrZVVuaXF1ZTxIYXNo
U2V0PFN0cmluZz4+KCk7CisgICAgICAgIGF1dG8gb3duZWRTZXQgPSBtYWtlVW5pcXVlPE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+KCk7CiAgICAgICAgIG5hbWVTZXQgPSBv
d25lZFNldC5nZXQoKTsKICAgICAgICAgbV9iZWluZ0RlbGV0ZWQuYWRkKG9yaWdpbi5pc29sYXRl
ZENvcHkoKSwgV1RGTW92ZShvd25lZFNldCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IDU2ZGMxMzVl
MjNhNzAzNmJlM2YwZDhmMjg0ZWExZmJiZjI1ZDFiMzMuLmY0Mzk1OTgyZDhkZTFhMzc4OTkzZmNm
NzA5ZDU1MjA3YzgzZTMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
CkBAIC0xNzcsNyArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBEYXRhYmFzZU1hbmFnZXJDbGllbnQq
IG1fY2xpZW50IHsgbnVsbHB0ciB9OwogCiAgICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEs
IHN0ZDo6dW5pcXVlX3B0cjxIYXNoQ291bnRlZFNldDxTdHJpbmc+Pj4gbV9iZWluZ0NyZWF0ZWQg
V1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwotICAgIEhhc2hNYXA8U2VjdXJp
dHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxTdHJpbmc+Pj4gbV9iZWluZ0Rl
bGV0ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOworICAgIEhhc2hNYXA8
U2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hTZXQ8U3RyaW5nPj4+IG1fYmVpbmdEZWxldGVkIFdURl9HVUFSREVEX0JZX0xPQ0sobV9k
YXRhYmFzZUd1YXJkKTsKICAgICBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4gbV9vcmlnaW5z
QmVpbmdEZWxldGVkIFdURl9HVUFSREVEX0JZX0xPQ0sobV9kYXRhYmFzZUd1YXJkKTsKICAgICBi
b29sIGlzRGVsZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgbmFtZSkgV1RGX1JFUVVJUkVTX0xPQ0sobV9kYXRhYmFzZUd1YXJk
KTsKICAgICB2b2lkIHJlY29yZENyZWF0aW5nRGF0YWJhc2UoY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2RhdGFiYXNlR3Vh
cmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuaAppbmRleCBhNGU2OWI1MWM4NDcwZjQ4OGIxNjJjZTZhYjA4NjE0YWNmYWNk
MjAwLi5jMjE0ZGNkMjdlMDkxMTgwOGU5ZTE0MmI4MTc4ZGQ3YzM2MDI1OWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
aApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNo
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMTA3LDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAg
SlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOwogICAg
IFJlZjxET01XcmFwcGVyV29ybGQ+IG1faXNvbGF0ZWRXb3JsZDsKICAgICBWZWN0b3I8UmVmUHRy
PEVsZW1lbnQ+LCAxPiBtX2NvbnN0cnVjdGlvblN0YWNrOwotICAgIEhhc2hTZXQ8QXRvbVN0cmlu
Zz4gbV9vYnNlcnZlZEF0dHJpYnV0ZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hT
ZXQ8QXRvbVN0cmluZz4gbV9vYnNlcnZlZEF0dHJpYnV0ZXM7CiAgICAgYm9vbCBtX2lzU2hhZG93
RGlzYWJsZWQgOiAxOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuaAppbmRleCBiODc4NGVhMTc0ZmY3MWZiNTNiODFjMTE4NDYwNGEzYTJl
OTI4NzhkLi5lOTJmNDVkOWM1ZThhNGE3YWU1MzliN2QyMzA4MTRhYTk4ZDQyYmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1
ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC03Myw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgVVJMIHJlc3Bv
bnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7
CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX2NvbnRleHQ7Ci0gICAgSGFzaE1hcDxT
dHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKKyAgICBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVS
TE1hcDsKICAgICBIYXNoU2V0PFJlZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAg
ICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOwogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIG1fc2hh
ZG93UmVhbG1HbG9iYWwgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5LmgKaW5kZXggMDFlYzY0NDgzZWFhNGQ5MjdlZGE2N2I3NzAzOWJjY2Y3ZTkz
MjAxOC4uOTRmYzZlYWY2MTA3YjJkMDFlYWIzMDIwMmI4N2I1M2M1MjU2YTc3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaApAQCAtMjcsOCArMjcsOCBAQAog
CiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJRdWFs
aWZpZWROYW1lLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIApAQCAtNjcsNyArNjcsNyBAQCBw
dWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGdldChjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgdm9p
ZCB1cGdyYWRlKE5vZGUmIHJvb3QpOwogCi0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPj4mIHByb21pc2VNYXAoKSB7IHJldHVybiBtX3Byb21pc2VNYXA7IH0KKyAg
ICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPj4mIHByb21pc2VNYXAoKSB7IHJldHVybiBtX3Byb21pc2VNYXA7IH0KICAgICBib29s
IGlzU2hhZG93RGlzYWJsZWQoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgY29uc3QgeyByZXR1cm4g
bV9kaXNhYmxlZFNoYWRvd1NldC5jb250YWlucyhuYW1lKTsgfQogCiBwcml2YXRlOgpAQCAtNzYs
OCArNzYsOCBAQCBwcml2YXRlOgogICAgIERPTVdpbmRvdyYgbV93aW5kb3c7CiAgICAgSGFzaE1h
cDxBdG9tU3RyaW5nLCBSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlPj4gbV9uYW1lTWFwOwog
ICAgIEhhc2hNYXA8Y29uc3QgSlNDOjpKU09iamVjdCosIEpTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZSo+IG1fY29uc3RydWN0b3JNYXA7Ci0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPj4gbV9wcm9taXNlTWFwOwotICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9kaXNh
YmxlZFNoYWRvd1NldDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3Ry
aW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wcm9taXNlTWFwOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+IG1fZGlzYWJsZWRTaGFkb3dTZXQ7CiAKICAg
ICBib29sIG1fZWxlbWVudERlZmluaXRpb25Jc1J1bm5pbmcgeyBmYWxzZSB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXh0ZW5zaW9uU3R5bGVTaGVldHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oCmluZGV4IGRhOGIwYTk2OGNkOGFiMWQ1
NzM0NmQ5ZGI4NmM5OTA3OWM0NDM3ZjQuLmNkMjQ4NTg5NTdlZWU3MjNlMWZmODkyMzM0OWZhYTBm
ZjRkNWIzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNo
ZWV0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oCkBA
IC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXQuaCIKICNpbmNsdWRlIDxt
ZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxVc2VyU3R5
bGVTaGVldD4gbV9wYWdlU3BlY2lmaWNTdHlsZVNoZWV0czsKIAogI2lmIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4g
bV9jb250ZW50RXh0ZW5zaW9uU2hlZXRzOwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8Q29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0
ZW5zaW9uU2VsZWN0b3JTaGVldHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8
U3RyaW5nLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4+IG1fY29udGVudEV4dGVuc2lvblNoZWV0czsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ+PiBtX2NvbnRlbnRFeHRlbnNp
b25TZWxlY3RvclNoZWV0czsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXIuY3BwCmluZGV4IGQ5ODAyZmUyYmNhY2UxYjA4ZjU3YzM3NjdkMDVkZDM0YTgzOTA2
MzMuLmRkNmU0ZWY2ZjgxMTc2ZDYxMWVlNGRkNDliNDVhNzdmYWM0Y2Q0NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhh
c2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05MCw3ICs5MSw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSYgbm9kZSwgY29uc3Qg
SW5pdCYgaW5pdCkKICAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhT2xkVmFsdWUudmFsdWVfb3Io
ZmFsc2UpKQogICAgICAgICBvcHRpb25zLmFkZChPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xk
VmFsdWUpOwogCi0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CisgICAg
TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJp
YnV0ZUZpbHRlcjsKICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVGaWx0ZXIpIHsKICAgICAgICAgZm9y
IChhdXRvJiB2YWx1ZSA6IGluaXQuYXR0cmlidXRlRmlsdGVyLnZhbHVlKCkpCiAgICAgICAgICAg
ICBhdHRyaWJ1dGVGaWx0ZXIuYWRkKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBkM2MxZmE2NmVkMmY1NTQ3
ZjBiODA5YzY5MDdiYjQ1YzRmOWY1NGEzLi5jOGFmMmU4MTkyZWVhMjM2OTkyMzg2MGMzMzU0N2U5
NGI5MWNiOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgTm9kZSYgbm9kZSwgTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmli
dXRlRmlsdGVyKQorTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgTm9kZSYgbm9kZSwgTXV0
YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9u
bHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCiAgICAgOiBt
X29ic2VydmVyKG9ic2VydmVyKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29wdGlvbnMo
b3B0aW9ucykKQEAgLTUzLDcgKzUzLDcgQEAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6
fk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oKQogICAgIG1fb2JzZXJ2ZXItPm9ic2VydmF0
aW9uRW5kZWQoKnRoaXMpOwogfQogCi12b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246
OnJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3Qg
SGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQordm9pZCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpyZXNldE9ic2VydmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25z
IG9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxB
dG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQogewogICAgIHRha2VUcmFuc2llbnRSZWdpc3Ry
YXRpb25zKCk7CiAgICAgbV9vcHRpb25zID0gb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IDc1YmIyN2MzNTE0MDJm
NThmNGU3ODQ5NjU2MzBhYmI4ZTI5YjUxYjUuLjEyNjdmMDEyZTY0N2Y2ZjhkZTlhZGFiYTM1YTg1
MTA4ZjlhNzdiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaApAQCAtMzIsNyArMzIsNyBAQAogCiAjaW5jbHVkZSAiR0NSZWFjaGFi
bGVSZWYuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CkBAIC00OCwxMCArNDgsMTAgQEAgY2xhc3MgUXVh
bGlmaWVkTmFtZTsKIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24gOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24oTXV0YXRpb25PYnNlcnZlciYsIE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywg
Y29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKTsKKyAgICBNdXRhdGlv
bk9ic2VydmVyUmVnaXN0cmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXImLCBOb2RlJiwgTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKTsKICAgICB+TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbigpOwogCi0gICAgdm9pZCByZXNldE9ic2VydmF0aW9uKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIp
OworICAgIHZvaWQgcmVzZXRPYnNlcnZhdGlvbihNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29u
c3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+JiBh
dHRyaWJ1dGVGaWx0ZXIpOwogICAgIHZvaWQgb2JzZXJ2ZWRTdWJ0cmVlTm9kZVdpbGxEZXRhY2go
Tm9kZSYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+
Pj4gdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJl
Z2lzdHJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVz
ICYmICFtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzLT5pc0VtcHR5KCk7IH0KQEAgLTcyLDcg
KzcyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlS2VwdEFsaXZlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gbV90cmFuc2ll
bnRSZWdpc3RyYXRpb25Ob2RlczsKICAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtX29wdGlv
bnM7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBtX2F0dHJpYnV0ZUZpbHRlcjsKKyAgICBNZW1v
cnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9hdHRyaWJ1
dGVGaWx0ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5k
ZXggMThmYTkwMDYxNGVhNDZkZDQwN2I4MTE1NGQ3OTAyZDE2MDUwZmM0Mi4uYzJhNWJkYTgxNjJl
ZmMwYmFiMWE3MmIxMGE4NjhkMDc3Zjk5OWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjMxOSw3
ICsyMzE5LDcgQEAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiBOb2RlOjpyZWdpc3RlcmVkTXUKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi12b2lkIE5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVy
JiBvYnNlcnZlciwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNl
dDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQordm9pZCBOb2RlOjpyZWdpc3Rlck11dGF0
aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25zIG9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQogewogICAgIE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG51bGxwdHI7CiAgICAgYXV0byYgcmVnaXN0
cnkgPSBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU11dGF0aW9uT2JzZXJ2ZXJEYXRhKCkucmVnaXN0
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAppbmRleCAwZTRhMDA5NWE1ZTY5NmQ5MjI3MDNiMTAyMTJmY2Q5MTE4ZDY3
MzkyLi5iZGYxNjJlN2MyMWI1YzZkMzQzZmQ3NjFlMDc1NWJkNmUwMWE2YzhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxIYXNoLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHB1YmxpYzoKICAg
ICBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIGZpbmFsOwogCiAgICAg
SGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOwotICAgIHZvaWQgcmVnaXN0
ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKTsKKyAgICB2
b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKTsKICAgICB2b2lkIHVucmVnaXN0ZXJN
dXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lk
IHJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2luZG93RXZlbnRMb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVu
dExvb3AuY3BwCmluZGV4IGI5YzFjMTkyY2ZhNDJhMWZmMWEyZWMzZGI5NWYwMGIxY2VkOWQ0ODAu
LmE2MTMyY2IxMzU5MjY4ZmU3NzUzOGIxNjZhOWI3N2QyYTc2MDgyMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudExvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XaW5kb3dFdmVudExvb3AuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKICNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBIYXNoTWFwPFN0cmluZywgV2luZG93RXZlbnRMb29wKj4mIHdpbmRvd0V2ZW50TG9vcE1hcCgp
CitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBXaW5kb3dFdmVu
dExvb3AqPiYgd2luZG93RXZlbnRMb29wTWFwKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBX
aW5kb3dFdmVudExvb3AqPj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdpbmRvd0V2ZW50TG9vcCo+PiBtYXA7CiAg
ICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMGIy
OTFmNGI5ZDRjODRkMjc1M2I4OTFlZTE2NTJiNjdjMDRhZjNmYS4uZjI0ODliMWU0NWRjMGI4YWZl
YTlmMzgzMGU3Zjc5YTdjMzFlMzRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlBhc3RlYm9hcmRXcml0ZXJEYXRhLmgiCisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiVGV4dENo
ZWNraW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgiCkBAIC02NjcsOCArNjY4
LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fb3ZlcndyaXRlTW9kZUVuYWJsZWQgeyBmYWxzZSB9
OwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBIYXNoU2V0PFN0cmluZz4g
bV9pbnNlcnRlZEF0dGFjaG1lbnRJZGVudGlmaWVyczsKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9y
ZW1vdmVkQXR0YWNobWVudElkZW50aWZpZXJzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoU2V0PFN0cmluZz4gbV9pbnNlcnRlZEF0dGFjaG1lbnRJZGVudGlmaWVyczsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fcmVtb3ZlZEF0dGFjaG1lbnRJZGVu
dGlmaWVyczsKICNlbmRpZgogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX21hcms7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09i
amVjdC5oCmluZGV4IDhhMzFlYTg1OThhNjAyMzQwY2E0YTE5N2Y3Yjk2NGU4ZGE1MmQzYzAuLmIx
ODNiYmUzMDk5NDg4YzQ5NzgyNDIwYmZmMzk5YjMwZmQ0OWYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5o
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9i
aW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkwLDcgKzkxLDcg
QEAgcHJpdmF0ZToKICAgICBjbGFzcyBJbnNwZWN0b3JBdWRpdENhY2hlZFN0eWxlU2hlZXRDbGll
bnQgOiBwdWJsaWMgQ2FjaGVkU3R5bGVTaGVldENsaWVudCB7IH07CiAgICAgSW5zcGVjdG9yQXVk
aXRDYWNoZWRTdHlsZVNoZWV0Q2xpZW50IG1fY2FjaGVkU3R5bGVTaGVldENsaWVudDsKIAotICAg
IEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+IG1fcmVzb3VyY2VzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBtX3Jlc291
cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwCmluZGV4IDMyOGViZTdlNjQxMTk1
ZTVhNDY4NTAyNzU1OTEwZjc4YzQ4YjU4ZDguLjBiNzRkNTZjZjM1NjI2N2EzODY5OWE5ODgwMjYy
MjI4NzU0Y2NhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3Jr
UmVzb3VyY2VzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtS
ZXNvdXJjZXNEYXRhLmNwcApAQCAtMzE5LDkgKzMxOSwxMCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZXNEYXRhOjpjbGVhcihzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcHJlc2VydmVkTG9hZGVySWQpCiAg
ICAgaWYgKCFwcmVzZXJ2ZWRMb2FkZXJJZCkKICAgICAgICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNl
RGF0YU1hcC5jbGVhcigpOwogICAgIGVsc2UgewotICAgICAgICBtX3JlcXVlc3RJZFRvUmVzb3Vy
Y2VEYXRhTWFwLnJlbW92ZUlmKFtsb2FkZXJJZCA9ICpwcmVzZXJ2ZWRMb2FkZXJJZF0gKGF1dG8m
IGVudHJ5KSB7Ci0gICAgICAgICAgICByZXR1cm4gZW50cnkudmFsdWUtPmxvYWRlcklkKCkgIT0g
bG9hZGVySWQ7Ci0gICAgICAgIH0pOworICAgICAgICBhdXRvIGRhdGFUb0tlZXAgPSBtX3JlcXVl
c3RJZFRvUmVzb3VyY2VEYXRhTWFwLnRha2UoKnByZXNlcnZlZExvYWRlcklkKTsKKyAgICAgICAg
bV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcC5jbGVhcigpOworICAgICAgICBpZiAoZGF0YVRv
S2VlcCkKKyAgICAgICAgICAgIG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXAuYWRkKCpwcmVz
ZXJ2ZWRMb2FkZXJJZCwgV1RGTW92ZShkYXRhVG9LZWVwKSk7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCmluZGV4IGM4Y2Vk
MTJhNjQwN2ZkY2Q1NzRlY2MyYTc4MTllZGU2NjM4MDNkYWMuLmEyNGFiZDg4MzY2MTdiYWFhMjg0
Y2UxY2U1ZmQyYzIzMDkxYjdhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9O
ZXR3b3JrUmVzb3VyY2VzRGF0YS5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5I
b29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xNTcsNyArMTU3LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IGVuc3VyZUZyZWVTcGFjZShzaXplX3QpOwogCiAgICAgRGVxdWU8U3RyaW5nPiBtX3JlcXVlc3RJ
ZHNEZXF1ZTsKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlRGF0
YT4+IG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VEYXRhPj4gbV9yZXF1
ZXN0SWRUb1Jlc291cmNlRGF0YU1hcDsKICAgICBzaXplX3QgbV9jb250ZW50U2l6ZSB7IDAgfTsK
ICAgICBzaXplX3QgbV9tYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemU7CiAgICAgc2l6ZV90IG1f
bWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKaW5kZXgg
NWM2MzEzZTkxNzZmMTk0NDg2YjZjZjg4Yzc4MTQ3ZGI0YjUxYmNkYy4uYWRhOWY4Njk1YmQ4NDk3
N2JjMzg0N2U5NThlNWFjYTI0YjFjYTgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0
Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVj
dHMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTEsNyArOTIsNyBAQCBwcml2
YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlcjsKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiAKLSAgICBIYXNoTWFwPFN0
cmluZywgV2ViQW5pbWF0aW9uKj4gbV9hbmltYXRpb25JZE1hcDsKKyAgICBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdlYkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7
CiAgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkQW5pbWF0aW9uSWRzOwogICAgIFRpbWVyIG1f
YW5pbWF0aW9uRGVzdHJveWVkVGltZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA0YzdjMjM5OTUyNzZm
MzkyNWYyYjhmNTczY2RkNjhkZDBiZjU4NWU1Li45Njg3YjRmNzg3NTM2NjM4OGM4MmRhOTAwNzA2
YzA1ZTI2N2M1NWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUg
PGluaXRpYWxpemVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtMTQxLDE3ICsxNDMsMTcgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAgICAgUGFnZSYgbV9p
bnNwZWN0ZWRQYWdlOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JDYW52
YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhczsKKyAgICBNZW1vcnlDb21wYWN0Um9i
aW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+PiBtX2lkZW50aWZp
ZXJUb0luc3BlY3RvckNhbnZhczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRDYW52YXNJ
ZGVudGlmaWVyczsKICAgICBUaW1lciBtX2NhbnZhc0Rlc3Ryb3llZFRpbWVyOwogCiAjaWYgRU5B
QkxFKFdFQkdMKQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbT4+IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbTsKKyAgICBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4g
bV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVt
b3ZlZFByb2dyYW1JZGVudGlmaWVyczsKICAgICBUaW1lciBtX3Byb2dyYW1EZXN0cm95ZWRUaW1l
cjsKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCiAKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9yZWNv
cmRpbmdDYW52YXNJZGVudGlmaWVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNl
dDxTdHJpbmc+IG1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnM7CiAKICAgICBzdGQ6Om9wdGlv
bmFsPHNpemVfdD4gbV9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQ7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQuaAppbmRleCAwZThlMmI2YWEzOTJmOTAwYjJhZDJmZjZhMjU5ZjE5M2M3ODUz
YTNiLi5lMDgzYzhiNGQ5OWQyOTFlYjRiZGQzODQwNDk1ZjJkOTE5NjBmMjg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC05OCwxMyArOTksMTMgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpET01EZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVy
PiBtX2JhY2tlbmREaXNwYXRjaGVyOwogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8
SlNDOjpCcmVha3BvaW50Pj4gbV9saXN0ZW5lckJyZWFrcG9pbnRzOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fbGlzdGVu
ZXJCcmVha3BvaW50czsKICAgICBSZWZQdHI8SlNDOjpCcmVha3BvaW50PiBtX3BhdXNlT25BbGxJ
bnRlcnZhbHNCcmVha3BvaW50OwogICAgIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VP
bkFsbExpc3RlbmVyc0JyZWFrcG9pbnQ7CiAgICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9w
YXVzZU9uQWxsVGltZW91dHNCcmVha3BvaW50OwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxK
U0M6OkJyZWFrcG9pbnQ+PiBtX3VybFRleHRCcmVha3BvaW50czsKLSAgICBIYXNoTWFwPFN0cmlu
ZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fdXJsUmVnZXhCcmVha3BvaW50czsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBt
X3VybFRleHRCcmVha3BvaW50czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxT
dHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3VybFJlZ2V4QnJlYWtwb2ludHM7CiAgICAg
UmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9wYXVzZU9uQWxsVVJMc0JyZWFrcG9pbnQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRh
dGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudC5oCmluZGV4IDZkZTc0NmUxN2Q2ZWI3OTZmMTdhNmJjZTMyMmY1Y2EwODA3
NjMxNzguLjE2NGVjYmUzMWIzYjA3NWNlZTU0NDVlMGEyYmRkNTIyMmI2OWY4YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRC
YXNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJbnNwZWN0b3I6OkRhdGFiYXNlRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0
Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyPiBt
X2JhY2tlbmREaXNwYXRjaGVyOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0
b3JEYXRhYmFzZVJlc291cmNlPj4gbV9yZXNvdXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZT4+IG1f
cmVzb3VyY2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKaW5k
ZXggNzJmNDIzZmY2MTI3N2VlZjRiZDM1NjMyOGM0NmQzYmQ5MTMxZmY2NS4uYjk1NmNlZTZhMTdh
MzdlY2RkN2VjZDM0MmYxMWM2ZGMxNDVjNDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5j
bHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiBj
bGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBAIC0yMjUsNyArMjI2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUmVzb3VyY2VzRGF0YT4gbV9yZXNvdXJjZXNE
YXRhOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9leHRyYVJlcXVlc3RIZWFkZXJz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2V4
dHJhUmVxdWVzdEhlYWRlcnM7CiAgICAgSGFzaFNldDxSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+
IG1faGlkZGVuUmVxdWVzdElkZW50aWZpZXJzOwogCiAgICAgc3RydWN0IEludGVyY2VwdCB7CkBA
IC0yNDMsOCArMjQ0LDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH07CiAgICAgVmVjdG9y
PEludGVyY2VwdD4gbV9pbnRlcmNlcHRzOwotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8UGVuZGluZ0ludGVyY2VwdFJlcXVlc3Q+PiBtX3BlbmRpbmdJbnRlcmNlcHRSZXF1ZXN0
czsKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRS
ZXNwb25zZT4+IG1fcGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlczsKKyAgICBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nSW50ZXJjZXB0
UmVxdWVzdD4+IG1fcGVuZGluZ0ludGVyY2VwdFJlcXVlc3RzOworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRS
ZXNwb25zZT4+IG1fcGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlczsKIAogICAgIC8vIEZJWE1FOiBJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQgc2hvdWxkIG5vdCBiZSBhd2FyZSBvZiBzdHlsZSByZWNhbGN1
bGF0aW9uLgogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0
b3I+IG1fc3R5bGVSZWNhbGN1bGF0aW9uSW5pdGlhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggM2Q1ZTU2NmRi
ZTBjNWVjMTFkOWU4ZGY2N2ZjZjBhNzA5ODhhMmY4Zi4uNzM0MjRjMmQzYjJhZDk4ODlhNTY2ZmY2
MWZkODZhNTBjOTkxNDc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAi
TGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5k
RGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTY3LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBGSVhNRTogTWFrZSBhIFdlYWtIYXNoTWFwIGFuZCB1c2UgaXQgZm9yIG1fZnJhbWVUb0lk
ZW50aWZpZXIgYW5kIG1fbG9hZGVyVG9JZGVudGlmaWVyLgogICAgIEhhc2hNYXA8RnJhbWUqLCBT
dHJpbmc+IG1fZnJhbWVUb0lkZW50aWZpZXI7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8
RnJhbWU+PiBtX2lkZW50aWZpZXJUb0ZyYW1lOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgV2Vha1B0cjxGcmFtZT4+IG1faWRlbnRpZmllclRvRnJhbWU7CiAgICAg
SGFzaE1hcDxEb2N1bWVudExvYWRlciosIFN0cmluZz4gbV9sb2FkZXJUb0lkZW50aWZpZXI7CiAg
ICAgU3RyaW5nIG1fdXNlckFnZW50T3ZlcnJpZGU7CiAgICAgU3RyaW5nIG1fZW11bGF0ZWRNZWRp
YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuaAppbmRleCBlMWJiZDhmOTQ2ZTQxZjMwMWE4ZmY4N2Y3NGFmZTM5OWQ2MWZl
YzI4Li42MjFhOWYzNTIwNGMzMGU2MGMxMzI1OTFjN2U1YTM2Mjg1NjgxMzNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yUHJveHkuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNr
ZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAogICAgIFBhZ2UmIG1fcGFnZTsK
LSAgICBIYXNoTWFwPFN0cmluZywgV2Vha1B0cjxXb3JrZXJJbnNwZWN0b3JQcm94eT4+IG1fY29u
bmVjdGVkUHJveGllczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcs
IFdlYWtQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+PiBtX2Nvbm5lY3RlZFByb3hpZXM7CiAgICAg
Ym9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggMzFjZjc4Y2E1YjE0MzU1MWEzYmE3NTAyM2FmY2E1NDNmY2U0
OTQzNC4uMmE1YmYyM2YzODU0OTNjMGJjMjNhZjM5MzEyMDZjOTFiZWNhMjQyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0yNTE0LDcgKzI1MTQsNyBAQCB2
b2lkIERvY3VtZW50TG9hZGVyOjpjb250ZW50RmlsdGVySGFuZGxlUHJvdmlzaW9uYWxMb2FkRmFp
bHVyZShjb25zdCBSZXNvdXJjZUVycgogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRBY3RpdmVD
b250ZW50UnVsZUxpc3RBY3Rpb25QYXR0ZXJucyhjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9y
PFN0cmluZz4+JiBwYXR0ZXJucykKIHsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFVzZXJD
b250ZW50VVJMUGF0dGVybj4+IHBhcnNlZFBhdHRlcm5NYXA7CisgICAgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPj4gcGFy
c2VkUGF0dGVybk1hcDsKIAogICAgIGZvciAoYXV0byYgcGFpciA6IHBhdHRlcm5zKSB7CiAgICAg
ICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IHBhdHRlcm5WZWN0b3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IGM2NDUwZDUwNzJkMGVmZDA0MzBiNmQz
ZTU0MjBkMmQyYjNlOTQzY2IuLmU5YzhiNjRmNDkwNTI0YzMyMTYyYjlhMDkwMDA0OWQ3MGVlZGQy
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC01NSw2ICs1NSw4
IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCkBAIC02MzMsNyArNjM1
LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3BhcnNlZEFyY2hpdmVE
YXRhOwogI2VuZGlmCiAKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXNvdXJjZXNDbGllbnRLbm93
c0Fib3V0OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9yZXNv
dXJjZXNDbGllbnRLbm93c0Fib3V0OwogICAgIFZlY3RvcjxSZXNvdXJjZVJlcXVlc3Q+IG1fcmVz
b3VyY2VzTG9hZGVkRnJvbU1lbW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uOwogICAgIAog
ICAgIFN0cmluZyBtX2NsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKQEAgLTY4MCw4ICs2
ODIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPj4gbV9wZW5k
aW5nTmFtZWRDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcs
IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4+PiBtX3BlbmRpbmdDb250ZW50RXh0
ZW5zaW9uRGlzcGxheU5vbmVTZWxlY3RvcnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPj4gbV9wZW5kaW5nTmFtZWRD
b250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8U3RyaW5nLCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+Pj4gbV9wZW5k
aW5nQ29udGVudEV4dGVuc2lvbkRpc3BsYXlOb25lU2VsZWN0b3JzOwogI2VuZGlmCiAgICAgU3Ry
aW5nIG1fY3VzdG9tVXNlckFnZW50OwogICAgIFN0cmluZyBtX2N1c3RvbVVzZXJBZ2VudEFzU2l0
ZVNwZWNpZmljUXVpcmtzOwpAQCAtNjg5LDcgKzY5MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lkZW1wb3RlbnRNb2RlQXV0b3NpemluZ09ubHlIb25vcnNQZXJjZW50YWdlcyB7IGZhbHNlIH07
CiAgICAgU3RyaW5nIG1fY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm07CiAgICAgYm9vbCBtX3VzZXJD
b250ZW50RXh0ZW5zaW9uc0VuYWJsZWQgeyB0cnVlIH07Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZl
Y3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+PiBtX2FjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlv
blBhdHRlcm5zOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVj
dG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4+IG1fYWN0aXZlQ29udGVudFJ1bGVMaXN0QWN0aW9u
UGF0dGVybnM7CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAgICBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NTdGF0ZSB7IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6
OlByb21wdCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDNmYWQ5YTQ5MzA3MjVmODZiNTJmNzEzNWIyYmE2
OWI5YTU1NDQ5ZjIuLjMwZjY2MWNjNWY5YTcyNTYyNjU3YjU1MWMwNjA5NjZmMTI0MDUyNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYv
RXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTIwMCw4ICsyMDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2Fu
UmVxdWVzdEFmdGVyUmVkaXJlY3Rpb24oQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFVSTCYs
IGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIGNvbnN0IFVSTCYgcHJlUmVkaXJlY3RVUkwp
IGNvbnN0OwogICAgIGJvb2wgY2FuUmVxdWVzdEluQ29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVu
dFNhbmRib3goQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFVSTCYpIGNvbnN0OwogCi0gICAg
SGFzaFNldDxVUkw+IG1fdmFsaWRhdGVkVVJMczsKLSAgICBIYXNoU2V0PFVSTD4gbV9jYWNoZWRT
VkdJbWFnZXNVUkxzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFVSTD4gbV92
YWxpZGF0ZWRVUkxzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFVSTD4gbV9j
YWNoZWRTVkdJbWFnZXNVUkxzOwogICAgIG11dGFibGUgRG9jdW1lbnRSZXNvdXJjZU1hcCBtX2Rv
Y3VtZW50UmVzb3VyY2VzOwogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAg
RG9jdW1lbnRMb2FkZXIqIG1fZG9jdW1lbnRMb2FkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDU2MzMz
MDBhZDNmMTFlMWJmNWQzYmUxZjUyZjU2NDljZDAxMjJjZDEuLjA1OGE5MWQ4ZTE2MDc2MjhkMzE3
MjI4MDFkNjUzNWQ2MDc5ZjExNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBACiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KQEAgLTExNjQsOCArMTE2NSw4IEBAIHByaXZh
dGU6CiAKICAgICBSZWZQdHI8SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1faWRi
Q29ubmVjdGlvblRvU2VydmVyOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1fc2VlblBsdWdpbnM7
Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlhRW5naW5lczsKKyAgICBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fc2VlblBsdWdpbnM7CisgICAgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5NZWRpYUVuZ2luZXM7CiAKICAgICB1
bnNpZ25lZCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCB7IDAgfTsKICAg
ICB1bnNpZ25lZCBtX2ZvcmJpZFByb21wdHNEZXB0aCB7IDAgfTsKQEAgLTEyODcsNyArMTI4OCw3
IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBtX2NvcnNE
aXNhYmxpbmdQYXR0ZXJuczsKICAgICBWZWN0b3I8VXNlclN0eWxlU2hlZXQ+IG1fdXNlclN0eWxl
U2hlZXRzUGVuZGluZ0luamVjdGlvbjsKLSAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5n
Pj4gbV9hbGxvd2VkTmV0d29ya0hvc3RzOworICAgIHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFj
dExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0
czsKICAgICBib29sIG1faXNUYWtpbmdTbmFwc2hvdHNGb3JBcHBsaWNhdGlvblN1c3BlbnNpb24g
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9sb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBi
b29sIG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZWQ5MjA1MzQwM2Q1ZWUzYjJkNzNkNmNkZmMwMWMw
MDRkYmRmNmI2OC4uY2Q1YWNlY2UyNzk1ZDlkYzRiMDc2NmQyYzZkNDEyY2M1ZjIzMmFhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTQ1LDcgKzE0NSw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgYWxsIGJlIFNldHRpbmdz
LgogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07Ci0gICAgc3RkOjpvcHRpb25h
bDxIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWROZXR3b3JrSG9zdHM7CisgICAgc3RkOjpvcHRpb25h
bDxNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4gYWxsb3dl
ZE5ldHdvcmtIb3N0czsKICAgICBib29sIHVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZp
Y2F0aW9uIHsgdHJ1ZSB9OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
IHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBh
cnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiAgICAgYm9vbCBodHRwc1VwZ3JhZGVFbmFibGVkIHsg
dHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJlY3RpdmUuaAppbmRleCBkOTkxNDgxZmFj
OTVkYjVmODU0MTQwMWYwYjcwMTQwN2IyMDIxOTNiLi43Y2JmZmZlNjYzNWM5Mjk4Y2I5NjEyOWI1
MjgwOTUzMWVlZThhYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJlY3RpdmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJlY3RpdmUuaApAQCAt
MjcsNyArMjcsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3lEaXJlY3RpdmUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0
Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1f
cGx1Z2luVHlwZXM7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0
PFN0cmluZz4gbV9wbHVnaW5UeXBlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNv
dXJjZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eVNvdXJjZUxpc3QuaAppbmRleCBjYjZhNTg4MGI4MDg1YzA2MmUyYzkwZTViNDU5ZTMzODEzMjc2
NGQzLi4wOTkzMzkwNGRlNzc4YjI5YjE1MTViNmM3YzhmOWY4NWU4YmNkZjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291
cmNlTGlzdC5oCkBAIC0yOSw4ICsyOSw4IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5SGFzaC5oIgogI2luY2x1ZGUg
IkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAKICAgICBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3kmIG1fcG9saWN5OwogICAgIFZlY3RvcjxDb250ZW50U2Vj
dXJpdHlQb2xpY3lTb3VyY2U+IG1fbGlzdDsKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9ub25jZXM7
CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9u
b25jZXM7CiAgICAgSGFzaFNldDxDb250ZW50U2VjdXJpdHlQb2xpY3lIYXNoPiBtX2hhc2hlczsK
ICAgICBPcHRpb25TZXQ8Q29udGVudFNlY3VyaXR5UG9saWN5SGFzaEFsZ29yaXRobT4gbV9oYXNo
QWxnb3JpdGhtc1VzZWQ7CiAgICAgU3RyaW5nIG1fZGlyZWN0aXZlTmFtZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcAppbmRleCA0M2MwM2Jl
ZTg0MTczYTAyMmUxODQ2MWQ4MGI4ODVjMWJmOTAyOGRmLi4yNTcyYjdhZjAzNjM5NzU5MDA0NjFj
NWQwMGI2YzFhODA5YjQ0NmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZWdhY3lTY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVn
YWN5U2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1VSTFBhcnNlci5oPgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpAQCAtMjM1
LDEwICsyMzYsMTAgQEAgdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1l
UmVnaXN0ZXJlZEFzTG9jYWwoY29uc3QgU3RyaW5nJiBzY2hlbWUKICAgICBsb2NhbFVSTFNjaGVt
ZXMoKS5yZW1vdmUoc2NoZW1lKTsKIH0KIAotc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1l
c0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoKSBXVEZfUkVRVUlSRVNfTE9DSyhzY2hlbWVSZWdpc3Ry
eUxvY2spCitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgc2No
ZW1lc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoKSBXVEZfUkVRVUlSRVNfTE9DSyhzY2hlbWVSZWdp
c3RyeUxvY2spCiB7CiAgICAgQVNTRVJUKHNjaGVtZVJlZ2lzdHJ5TG9jay5pc0hlbGQoKSk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gc2V0OworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+PiBz
ZXQ7CiAgICAgcmV0dXJuIHNldC5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U3RhdGljUGFzdGVib2FyZC5oCmluZGV4IGMwOWI2ZGUzMWYyZWRlYmUwMTg4ZGM5YzQ2NmEyNzFl
MWI4YjllMTQuLjQyNGM3MWM0YmUyY2U4MTUzOGE5MmU3ZjVmYWVhMTdlOWMwNWMxYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmgKQEAgLTI2LDcgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0
YSBtX2N1c3RvbURhdGE7Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fbm9uRGVmYXVsdERhdGFUeXBl
czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fbm9uRGVmYXVs
dERhdGFUeXBlczsKICAgICBQYXN0ZWJvYXJkOjpGaWxlQ29udGVudFN0YXRlIG1fZmlsZUNvbnRl
bnRTdGF0ZSB7IFBhc3RlYm9hcmQ6OkZpbGVDb250ZW50U3RhdGU6Ok5vRmlsZU9ySW1hZ2VEYXRh
IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMjYzOWYxYmQ5ZDlkNGIzYWY4MmJkMDYwOTdhYWFj
YzI1NjFjODU4My4uNzhiZjNjMzFmN2U0YThhZmM5ZGU0NjhjZjVjYmQ4NzA4MGJkNDQ2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZl
clByaXZhdGUuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1
ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTE5MCw3ICsxOTEsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNBdWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hh
c1ZpZGVvIHsgZmFsc2UgfTsKIAotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgVW5pcXVlUmVmPFRy
YWNrQnVmZmVyPj4gbV90cmFja0J1ZmZlck1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxBdG9tU3RyaW5nLCBVbmlxdWVSZWY8VHJhY2tCdWZmZXI+PiBtX3RyYWNrQnVmZmVy
TWFwOwogCiAgICAgU291cmNlQnVmZmVyQXBwZW5kTW9kZSBtX2FwcGVuZE1vZGUgeyBTb3VyY2VC
dWZmZXJBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBiZTFi
NmM0YTRlYjE3NjRlNGU1ZDM2MWZiOWJmOTI2M2YyM2VlNzY2Li4yMTVkMDUwNjhmYTg2ZGEwYjg5
NTA2M2M5NzViZWFlZGU2ZTZhMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTY5LDYgKzY5LDcg
QEAKICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjA2LDcgKzIwNyw3IEBAIHByaXZhdGU6
CiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiogbV9jdXJyZW50VGV4dFRyYWNrOwogCiAj
aWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQotICAgIEhhc2hNYXA8U3RyaW5n
LCBWZWN0b3I8UmV0YWluUHRyPEFWQ0ZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3RSZWY+Pj4g
bV9rZXlVUklUb1JlcXVlc3RNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8UmV0YWluUHRyPEFWQ0ZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3RS
ZWY+Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7CiAgICAgQVZDRkFzc2V0UmVzb3VyY2VMb2FkZXJD
YWxsYmFja3MgbV9yZXNvdXJjZUxvYWRlckNhbGxiYWNrczsKICNlbmRpZgogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCA5OWVkN2UxNGU1ODgzOGVhNTk2NWExODAyZmJkYzZiNTBjZjA3MGZj
Li4wY2M5ZDNlMDUxZDNkODljOTFlNTZhYTZlYjIyN2QxYjRlYTkzYThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgiCiAjaW5jbHVkZSA8Q29yZU1lZGlhL0NNVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L09ic2VydmVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KIAogT0JKQ19D
TEFTUyBBVkFzc2V0SW1hZ2VHZW5lcmF0b3I7CiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKQEAg
LTM4Nyw4ICszODcsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXI7CiAgICAgSGFzaE1hcDxSZXRhaW5QdHI8Q0ZUeXBlUmVmPiwgUmVmUHRyPFdl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlcj4+IG1fcmVzb3VyY2VMb2FkZXJNYXA7CiAgICAgUmV0YWlu
UHRyPFdlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0ZT4gbV9sb2FkZXJEZWxlZ2F0ZTsKLSAgICBIYXNo
TWFwPFN0cmluZywgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9r
ZXlVUklUb1JlcXVlc3RNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxBVkFzc2V0
UmVzb3VyY2VMb2FkaW5nUmVxdWVzdD4+IG1fc2Vzc2lvbklEVG9SZXF1ZXN0TWFwOworICAgIE1l
bW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPEFWQXNzZXRSZXNv
dXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7CisgICAgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9h
ZGluZ1JlcXVlc3Q+PiBtX3Nlc3Npb25JRFRvUmVxdWVzdE1hcDsKIAogICAgIFJldGFpblB0cjxB
VlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0PiBtX2xlZ2libGVPdXRwdXQ7CiAKQEAgLTQwMyw3ICs0
MDMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZh
dGVBVkY+IG1fbWV0YWRhdGFUcmFjazsKICNlbmRpZgogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxJbmJhbmRDaGFwdGVyVHJhY2tQcml2YXRlQVZGT2JqQz4+IG1fY2hhcHRlclRyYWNrczsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbmJhbmRD
aGFwdGVyVHJhY2tQcml2YXRlQVZGT2JqQz4+IG1fY2hhcHRlclRyYWNrczsKIAogI2lmIEVOQUJM
RShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5Q
dHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5oCmluZGV4IGM0YTMxYmU1NWM1M2U5NGRkY2Y1MTQ4ZTVkM2E1Y2FlODkzMzI1ZGYuLjlmNWUy
MjAzMDk5MDAyYjNmZWQ4YmMwZmYzMzU0YWUxNTA3OGI0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRl
IDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOwogT0JKQ19DTEFTUyBXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlz
dGVuZXI7CkBAIC0yNDMsOCArMjQ0LDggQEAgcHJpdmF0ZToKICAgICB9OwogICAgIEN1cnJlbnRG
cmFtZVBhaW50ZXIgbV9pbWFnZVBhaW50ZXI7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmPEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBtX2F1ZGlvVHJhY2tNYXA7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPj4gbV92aWRlb1RyYWNr
TWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBtX2F1ZGlvVHJhY2tNYXA7CisgICAgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWY8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbT4+IG1fdmlkZW9UcmFja01hcDsKIAogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUg
bV9uZXR3b3JrU3RhdGUgeyBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpFbXB0eSB9OwogICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZSB7IE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlOjpIYXZlTm90aGluZyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDI2
NjdjYWY2OTkyMTAwNTEyMmFlYmY1ZTAzMTIwZjZmOWZiYjhkYTcuLjdlZjRhOTliMDQxYWY1YTQw
NmZhMmExNmM1ZDJhNzhlMjdkYTQ1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAg
LTgyOSw3ICs4MjksNyBAQCBlbnVtIGNsYXNzIFRyYWNrS2luZCB7CiB9OwogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgUmVmVD4KLXZvaWQgdXBkYXRlVHJhY2tzT2ZLaW5kKEhhc2hNYXA8U3RyaW5nLCBS
ZWZUPiYgdHJhY2tNYXAsIFRyYWNrS2luZCB0cmFja0tpbmQsIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJiBjdXJyZW50VHJhY2tzLCBSZWZUICgqaXRlbUZhY3RvcnkpKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiksIGNvbnN0IEZ1bmN0aW9uPHZvaWQoc3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPHR5cGVuYW1lIFJlZlQ6OlB0clRyYWl0czo6
U3RvcmFnZVR5cGU+Ojp0eXBlPiwgaW50LCBUcmFja1N0YXRlKT4mIGNvbmZpZ3VyZVRyYWNrKQor
dm9pZCB1cGRhdGVUcmFja3NPZktpbmQoTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3Ry
aW5nLCBSZWZUPiYgdHJhY2tNYXAsIFRyYWNrS2luZCB0cmFja0tpbmQsIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlVmVjdG9yJiBjdXJyZW50VHJhY2tzLCBSZWZUICgqaXRlbUZhY3RvcnkpKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiksIGNvbnN0IEZ1bmN0aW9uPHZvaWQoc3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPHR5cGVuYW1lIFJlZlQ6OlB0clRy
YWl0czo6U3RvcmFnZVR5cGU+Ojp0eXBlPiwgaW50LCBUcmFja1N0YXRlKT4mIGNvbmZpZ3VyZVRy
YWNrKQogewogICAgIFZlY3RvcjxSZWZUPiByZW1vdmVkVHJhY2tzOwogICAgIFZlY3RvcjxSZWZU
PiBhZGRlZFRyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1VUSVJlZ2lzdHJ5LmNwcAppbmRleCBhY2FiYTMxNGRkY2EwNTUzZDIwNzY2OGRjOGYxNWQ0
NTZiNmRlNWU1Li5kOWU0ZWUwNGIwZmEyZjZmNDY4YmMwMmI3ODE5MjJjMjYxYmVjOTVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVnaXN0cnku
Y3BwCkBAIC04MCw5ICs4MCw5IEBAIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5I
b29kSGFzaFNldDxTdHJpbmc+JiBkZWZhdWx0U3VwcG9ydGVkSW1hZ2VUeXBlCiAgICAgcmV0dXJu
IGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGVzOwogfQogCi1IYXNoU2V0PFN0cmluZz4mIGFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkKK01lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0
PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlczsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hTZXQ8U3RyaW5nPj4gYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CiAgICAgcmV0dXJu
IGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVnaXN0cnkuaAppbmRleCAxNGFiMjJiNGNjMjhl
NzUxZGE1YTI4MzZjNzczYjdmNGUzYzkxNzc2Li4wNTZhOWQ3ZTI5Njk1Yzc2M2YxMGEzMGI1MzJl
ZjJmYWE5YWQ0N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9VVElSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1VUSVJlZ2lzdHJ5LmgKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4m
IGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGVzKCk7Ci1IYXNoU2V0PFN0cmluZz4mIGFkZGl0aW9u
YWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCk7CitNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxT
dHJpbmc+JiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpOwogV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
c0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBib29sIGlzU3VwcG9y
dGVkSW1hZ2VUeXBlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4
IDlmOTBlYWEzODUzN2FkMDY4OGQ4NDNiM2Q4ZDgwYmIyMmU3ODM2ODguLjI2NDFkZWUzOTZmOTll
MmJmNDUzNTczMmNiOWFjZjgzYjllNTAyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAg
LTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9U
eXBlQ2FzdHNDRi5oPgogI2luY2x1ZGUgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3NDb2NvYS5oPgogCkBAIC05OTQsOCArOTk1LDggQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBM
b2NrIG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzTG9jazsKLSAgICBIYXNoTWFwPFN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPEluc3RhbGxlZEZvbnRGYW1pbHk+PiBtX2ZhbWlseU5hbWVUb0Zv
bnREZXNjcmlwdG9ycyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZmFtaWx5TmFtZVRvRm9udERlc2Ny
aXB0b3JzTG9jayk7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIEluc3RhbGxlZEZvbnQ+IG1fcG9zdFNj
cmlwdE5hbWVUb0ZvbnREZXNjcmlwdG9yczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxJbnN0YWxsZWRGb250RmFtaWx5Pj4gbV9mYW1p
bHlOYW1lVG9Gb250RGVzY3JpcHRvcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2ZhbWlseU5hbWVU
b0ZvbnREZXNjcmlwdG9yc0xvY2spOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PFN0cmluZywgSW5zdGFsbGVkRm9udD4gbV9wb3N0U2NyaXB0TmFtZVRvRm9udERlc2NyaXB0b3Jz
OwogICAgIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHM7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKaW5kZXggNTc2
MmUwODkzZDk5M2I0MzliOTA1ODkyYjE2MjU2NzYwOWI1YmQ1Yi4uMTEwMjI0M2NlZTYyMWMwMWRh
MmE1NWRhYjMzODk4YWUyZjk0MDk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNv
cmVUZXh0LmNwcApAQCAtMjg5LDcgKzI4OSw3IEBAIFZlY3RvcjxSZXRhaW5QdHI8Q1RGb250RGVz
Y3JpcHRvclJlZj4+IFN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0OjpjYXNjYWRlTGlzdChjCiAg
ICAgcmV0dXJuIGNhc2NhZGVMaXN0KHN5c3RlbUZvbnRQYXJhbWV0ZXJzKGRlc2NyaXB0aW9uLCBj
c3NGYW1pbHksIHN5c3RlbUZvbnRLaW5kLCBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyksIHN5c3Rl
bUZvbnRLaW5kKTsKIH0KIAotc3RhdGljIFN0cmluZyBnZW5lcmljRmFtaWx5KGNvbnN0IFN0cmlu
ZyYgbG9jYWxlLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgbWFwLCBDRlN0cmluZ1JlZiBjdEtl
eSkKK3N0YXRpYyBTdHJpbmcgZ2VuZXJpY0ZhbWlseShjb25zdCBTdHJpbmcmIGxvY2FsZSwgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBtYXAsIENGU3RyaW5n
UmVmIGN0S2V5KQogewogICAgIHJldHVybiBtYXAuZW5zdXJlKGxvY2FsZSwgWyZdIHsKICAgICAg
ICAgYXV0byBkZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlRm9yQ1NT
RmFtaWx5KGN0S2V5LCBsb2NhbGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFi
YXNlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5
c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgKaW5kZXggNWQzMzVmYzI0ZTc1MzE5ZDVhODAzM2Q1
NDI5Y2ExMjdkNjE5ZGFmMi4uYzNiNTcxZGI5ZTI1MzY2NTk5NWI4YzY5ZjVlODE4YTU2ODQ3MTc1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lz
dGVtRm9udERhdGFiYXNlQ29yZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvUm9i
aW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC0xMTMsMTEgKzExNCwxMSBAQCBw
cml2YXRlOgogCiAgICAgSGFzaE1hcDxDYXNjYWRlTGlzdFBhcmFtZXRlcnMsIFZlY3RvcjxSZXRh
aW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4+LCBDYXNjYWRlTGlzdFBhcmFtZXRlcnM6Okhhc2gs
IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxDYXNjYWRlTGlzdFBhcmFtZXRlcnM+PiBtX3N5c3RlbUZv
bnRDYWNoZTsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc2VyaWZGYW1pbGllczsK
LSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3NhbnNTZXJpZmVyaWZGYW1pbGllczsKLSAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2N1cnNpdmVGYW1pbGllczsKLSAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBtX2ZhbnRhc3lGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiBtX21vbm9zcGFjZUZhbWlsaWVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3NlcmlmRmFtaWxpZXM7CisgICAgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc2Fuc1NlcmlmZXJpZkZhbWlsaWVz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2N1
cnNpdmVGYW1pbGllczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4gbV9mYW50YXN5RmFtaWxpZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fbW9ub3NwYWNlRmFtaWxpZXM7CiB9OwogCiBpbmxpbmUg
dm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0
OjpDYXNjYWRlTGlzdFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KaW5kZXggMDU4YjdlOWNmMTA1M2RlYTA1MGE4MjFmOTk4
OWNjYzljZjk4Y2JmZS4uMDE4N2Y1YTMxZTgyNDY1ZWM5N2I1ZjYxYTAzYTJlNmI0ZjU1ZGE4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQpAQCAtMjgsOCAr
MjgsOCBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgog
I2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvUm9iaW5Ib29kSGFz
aFNldC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhy
ZWFkVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRp
b24KICAgICBpZiAocm91bmQgPj0gTWF4aW11bVRocmVhZFZpb2xhdGlvblJvdW5kKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBs
b2dnZWRGdW5jdGlvbnM7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IGxvZ2dlZEZ1bmN0aW9uczsKICAgICBzd2l0Y2ggKHRo
cmVhZFZpb2xhdGlvbkJlaGF2aW9yW3JvdW5kXSkgewogICAgICAgICBjYXNlIE5vVGhyZWFkQ2hl
Y2s6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggN2YyZWI0NWVmMTE4
NmUwZjc1MWU3MzExMDg1OWZjMTEyYWQ2NjBkMi4uN2RmYTcxZTMyYmUyYzQ5YmJlZGNjNzQ0M2Iw
ZTQ3MDcxMzg5YjVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNpbmNs
dWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgpAQCAtMTMzLDcg
KzEzMyw3IEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJz
OwogICAgIFN0cmluZyBtX2lkOwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2FjdGl2
ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3Ry
YWNrU2V0OwogICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCmluZGV4IGVlYmQ4
NmMzMjJjZjc1NTNjNWE0ZjMyNzZhZTg3ZGI4MjNiZDQ5ZTYuLjJhMWIyM2VkMWNkODc5Yjk0YmFl
OGI3YzQ1MDBiNzY0ZGMxMTVmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAi
QmxvYkRhdGEuaCIKICNpbmNsdWRlICJCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRCbG9iRGF0YShjb25zdCBTdHJp
bmcmIHVybCwgUmVmUHRyPEJsb2JEYXRhPiYmKTsKIAogICAgIEhhc2hDb3VudGVkU2V0PFN0cmlu
Zz4gbV9ibG9iUmVmZXJlbmNlczsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEJsb2JEYXRh
Pj4gbV9ibG9iczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxCbG9iRGF0YT4+IG1fYmxvYnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9y
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdl
LmgKaW5kZXggZDBlMTZmN2JiNTI1OTNjNzk5MmZhYzlkZDJjZmI5NTc5Zjg1OGQzYi4uNDBlOWEw
MWYwMDFkMDk0ZTY4NWIwM2NiNzRjZDA0YzdlNzY1Y2ZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuaApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZUhhc2guaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhhc2hNYXA8c3RkOjpw
YWlyPFN0cmluZyAvKiBwYXJ0aXRpb25OYW1lICovLCBQcm90ZWN0aW9uU3BhY2U+LCBDcmVkZW50
aWFsPiBtX3Byb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcDsKLSAgICBIYXNoU2V0PFN0cmlu
Zz4gbV9vcmlnaW5zV2l0aENyZWRlbnRpYWxzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoU2V0PFN0cmluZz4gbV9vcmlnaW5zV2l0aENyZWRlbnRpYWxzOwogCiAgICAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgUHJvdGVjdGlvblNwYWNlPiBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNw
YWNlTWFwOwogICAgIFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAgbV9wYXRoVG9EZWZh
dWx0UHJvdGVjdGlvblNwYWNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggMzMwOTk0NWJkNDlhNjkw
YTY1ZjczZWMzZWQzZDdiMjQ1YWMwMjcyZC4uZGVjYTE3NjUyM2I4ODM4ZmQ5ZDBjZjM2NWFhNDlj
MjRiZTAyZGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTI2Niw3ICsyNjYsNyBAQCBwcml2YXRlOgogI2lmIEhBVkUoQ09PS0lFX0NIQU5HRV9MSVNURU5F
Ul9BUEkpCiAgICAgYm9vbCBtX2RpZFJlZ2lzdGVyQ29va2llTGlzdGVuZXJzIHsgZmFsc2UgfTsK
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU2V0PiBtX3N1YnNjcmliZWREb21haW5zRm9yQ29va2ll
Q2hhbmdlczsKLSAgICBIYXNoTWFwPFN0cmluZywgSGFzaFNldDxDb29raWVDaGFuZ2VPYnNlcnZl
cio+PiBtX2Nvb2tpZUNoYW5nZU9ic2VydmVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxTdHJpbmcsIEhhc2hTZXQ8Q29va2llQ2hhbmdlT2JzZXJ2ZXIqPj4gbV9jb29raWVD
aGFuZ2VPYnNlcnZlcnM7CiAjZW5kaWYKIAogICAgIENyZWRlbnRpYWxTdG9yYWdlIG1fY3JlZGVu
dGlhbFN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJl
bmNlZFNWR1Jlc291cmNlcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlZmVyZW5jZWRT
VkdSZXNvdXJjZXMuaAppbmRleCAwNzdiYmJhODhiYTc4NGI5YTlkMmExYWRhMGUyNGNkYTE0NGFj
Njc5Li44MTZkN2Q3YWM2MzI3NTg2NzBiNjNkOWFlZTZhMjZhNzIzMzMzNDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJlbmNlZFNWR1Jlc291cmNlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWZlcmVuY2VkU1ZHUmVzb3VyY2VzLmgKQEAgLTI2
LDggKzI2LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNp
bmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21T
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC02NSw3
ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVDbGllbnRGb3JUYXJnZXQoRG9jdW1l
bnQmLCBjb25zdCBBdG9tU3RyaW5nJik7CiAKICAgICBSZW5kZXJFbGVtZW50JiBtX3JlbmRlcmVy
OwotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPENTU1NWR1Jlc291cmNl
RWxlbWVudENsaWVudD4+IG1fZWxlbWVudENsaWVudHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPENTU1NWR1Jlc291cmNlRWxl
bWVudENsaWVudD4+IG1fZWxlbWVudENsaWVudHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgKaW5kZXggOWJi
ZDc3YmJjYzUzYjU4ZjhkOTA1MTZjZGJjMTM5YTNiZGQxZmVkZS4uY2ZhNjJlZTM3NTBjZDMwZTZi
ZDU3OGY1ZDJiMDU1N2ViNTk2NzFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVu
dEV4dGVuc2lvbnMuaApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIApAQCAtNzYsOSArNzcs
OSBAQCBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIFdlYWtIYXNoU2V0
PFNWR1NWR0VsZW1lbnQ+IG1fdGltZUNvbnRhaW5lcnM7IC8vIEZvciBTVkcgMS4yIHN1cHBvcnQg
dGhpcyB3aWxsIG5lZWQgdG8gYmUgbWFkZSBtb3JlIGdlbmVyYWwuCiAgICAgV2Vha0hhc2hTZXQ8
U1ZHRm9udEZhY2VFbGVtZW50PiBtX3N2Z0ZvbnRGYWNlRWxlbWVudHM7Ci0gICAgSGFzaE1hcDxB
dG9tU3RyaW5nLCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcio+IG1fcmVzb3VyY2VzOwotICAg
IEhhc2hNYXA8QXRvbVN0cmluZywgV2Vha0hhc2hTZXQ8RWxlbWVudD4+IG1fcGVuZGluZ1Jlc291
cmNlczsgLy8gUmVzb3VyY2VzIHRoYXQgYXJlIHBlbmRpbmcuCi0gICAgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBXZWFrSGFzaFNldDxFbGVtZW50Pj4gbV9wZW5kaW5nUmVzb3VyY2VzRm9yUmVtb3ZhbDsg
Ly8gUmVzb3VyY2VzIHRoYXQgYXJlIHBlbmRpbmcgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbC4K
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBSZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lcio+IG1fcmVzb3VyY2VzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtIYXNoU2V0PEVsZW1lbnQ+PiBtX3BlbmRpbmdSZXNv
dXJjZXM7IC8vIFJlc291cmNlcyB0aGF0IGFyZSBwZW5kaW5nLgorICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtIYXNoU2V0PEVsZW1lbnQ+PiBtX3BlbmRp
bmdSZXNvdXJjZXNGb3JSZW1vdmFsOyAvLyBSZXNvdXJjZXMgdGhhdCBhcmUgcGVuZGluZyBhbmQg
c2NoZWR1bGVkIGZvciByZW1vdmFsLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdSZXNvdXJjZXND
YWNoZT4gbV9yZXNvdXJjZXNDYWNoZTsKIAogICAgIFZlY3RvcjxSZWY8U1ZHRWxlbWVudD4+IG1f
cmVidWlsZEVsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggY2MyYmI4YWE1OTNm
MjRhNjdiZDIwNWQ3MTk0MmIwNTdlMjhjOTZhMC4uNTNlZGRmM2FmN2EyMTNjZjI5ZjU0M2I1MmE3
NWM2YjdiMzZiZDVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0xMTUsOSArMTE1LDYg
QEAgcHJpdmF0ZToKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX3J1bnRpbWVGbGFnczsKICAgICBE
ZXF1ZTxSZWZQdHI8RXZlbnQ+PiBtX3BlbmRpbmdFdmVudHM7CiAgICAgYm9vbCBtX3dhc1Rlcm1p
bmF0ZWQgeyBmYWxzZSB9OwotI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIEhhc2hTZXQ8U3RyaW5n
PiBtX3RyYW5zZm9ybWVyczsKLSNlbmRpZgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBlZDc4OTNjYmM4MjJhNzgzNWY4MDRkNTkyYTZiNDdh
ZDRmOGU3OWQyLi4yMDVjNWM0ZjZjYjFmMDIzYzAwMGFkODFiY2VmZmM5NzcxY2VjYzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0zOSw4ICszOSw4
IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVk
ZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KQEAgLTIxNyw3
ICsyMTcsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPENyeXB0bz4gbV9jcnlwdG87
CiAKICAgICBXZWFrUHRyPFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyPiBtX21haW5TY3JpcHRT
b3VyY2VQcm92aWRlcjsKLSAgICBIYXNoTWFwPFVSTCwgV2Vha0hhc2hTZXQ8U2NyaXB0QnVmZmVy
U291cmNlUHJvdmlkZXI+PiBtX2ltcG9ydGVkU2NyaXB0c1NvdXJjZVByb3ZpZGVyczsKKyAgICBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFdlYWtIYXNoU2V0PFNjcmlwdEJ1ZmZl
clNvdXJjZVByb3ZpZGVyPj4gbV9pbXBvcnRlZFNjcmlwdHNTb3VyY2VQcm92aWRlcnM7CiAKICAg
ICBSZWZQdHI8V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaAppbmRl
eCA5YTY2ZDQ4YjBhMjlkOWYyOTNhMzJiZmZlODRhNTdjMGQ3NzcyN2E0Li5iYjE1MGRmZDg3NjQ3
NzBjNjFiMjZiMjBkYjkwNjJjZDZkMzk1YWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCkBAIC0zNSw3
ICszNSw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJXb3Jr
ZXJUeXBlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5I
b29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxIYXNoLmg+CiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCkBAIC05NSw3ICs5NSw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEgewogICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKICAgICBib29sIGxvYWRlZEZyb21E
aXNrOwogICAgIHN0ZDo6b3B0aW9uYWw8TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ+IGxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkOwotICAgIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNj
cmlwdD4gc2NyaXB0UmVzb3VyY2VNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hN
YXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2NyaXB0UmVzb3VyY2VNYXA7CiAgICAgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyOwogICAgIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgbmF2aWdhdGlvblByZWxvYWRT
dGF0ZTsKIApAQCAtMTY0LDcgKzE2NCw3IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNv
bnRleHREYXRhPiBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCkpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3Jp
cHQ+IHNjcmlwdFJlc291cmNlTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc2NyaXB0UmVzb3VyY2VNYXApKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1Jl
Z2lzdHJhdGlvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCmluZGV4IGYxNDhhM2RhZWIxYzc1MDE2MjUy
MzE2OTRmZjU4NDU1ODRlYTU5YTAuLjIwZTdhNzY5OGMxNjQ1M2E0ZTViNTRkNjM4NjI1YzlkNWJi
ZWU3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
UmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAg
c3RydWN0IEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcyB7CiAgICAgfQogfTsKIAotc3RhdGljIEhh
c2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0ZXM+IHN0cmlwU2NyaXB0U291cmNlcyhj
b25zdCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlw
dD4mIG1hcCkKK3N0YXRpYyBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiBz
dHJpcFNjcmlwdFNvdXJjZXMoY29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJM
LCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYgbWFwKQogewogICAg
IEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0ZXM+IG1hcFdpdGhvdXRTY3JpcHRz
OwogICAgIGZvciAoYXV0byYgcGFpciA6IG1hcCkKQEAgLTEzNyw5ICsxMzcsOSBAQCBzdGF0aWMg
SGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcz4gc3RyaXBTY3JpcHRTb3VyY2Vz
KGNvbnN0IEhhc2hNYXA8VQogICAgIHJldHVybiBtYXBXaXRob3V0U2NyaXB0czsKIH0KIAotc3Rh
dGljIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0
PiBwb3B1bGF0ZVNjcmlwdFNvdXJjZXNGcm9tRGlzayhTV1NjcmlwdFN0b3JhZ2UmIHNjcmlwdFN0
b3JhZ2UsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktl
eSwgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcz4mJiBtYXApCitzdGF0aWMg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE6OkltcG9ydGVkU2NyaXB0PiBwb3B1bGF0ZVNjcmlwdFNvdXJjZXNGcm9tRGlzayhTV1Njcmlw
dFN0b3JhZ2UmIHNjcmlwdFN0b3JhZ2UsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25L
ZXkmIHJlZ2lzdHJhdGlvbktleSwgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0QXR0cmlidXRl
cz4mJiBtYXApCiB7Ci0gICAgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6
SW1wb3J0ZWRTY3JpcHQ+IGltcG9ydGVkU2NyaXB0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+
IGltcG9ydGVkU2NyaXB0czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtYXApIHsKICAgICAgICAg
YXV0byBpbXBvcnRlZFNjcmlwdCA9IHNjcmlwdFN0b3JhZ2UucmV0cmlldmUocmVnaXN0cmF0aW9u
S2V5LCBwYWlyLmtleSk7CiAgICAgICAgIGlmICghaW1wb3J0ZWRTY3JpcHQpIHsKQEAgLTQ4MSw3
ICs0ODEsNyBAQCBib29sIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpkb1B1c2hDaGFuZ2VzKGNvbnN0
IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+JgogICAgICAgICBBU1NFUlQobWFpblNj
cmlwdCk7CiAgICAgICAgIGlmICghbWFpblNjcmlwdCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4gaW1wb3J0ZWRTY3JpcHRzOwor
ICAgICAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4g
aW1wb3J0ZWRTY3JpcHRzOwogICAgICAgICBmb3IgKGF1dG8mIFtzY3JpcHRVUkwsIHNjcmlwdF0g
OiBkYXRhLnNjcmlwdFJlc291cmNlTWFwKSB7CiAgICAgICAgICAgICBhdXRvIGltcG9ydGVkU2Ny
aXB0ID0gc2NyaXB0U3RvcmFnZS5zdG9yZShkYXRhLnJlZ2lzdHJhdGlvbi5rZXksIHNjcmlwdFVS
TCwgc2NyaXB0LnNjcmlwdCk7CiAgICAgICAgICAgICBBU1NFUlQoaW1wb3J0ZWRTY3JpcHQpOwpA
QCAtNTQ2LDcgKzU0Niw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVj
b3JkcygpCiAKICAgICAgICAgYXV0byByZWZlcnJlclBvbGljeSA9IHNxbC0+Y29sdW1uVGV4dCgx
MCk7CiAKLSAgICAgICAgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1w
b3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOworICAgICAgICBNZW1vcnlDb21wYWN0Um9i
aW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3Jp
cHQ+IHNjcmlwdFJlc291cmNlTWFwOwogICAgICAgICBhdXRvIHNjcmlwdFJlc291cmNlTWFwRGF0
YVNwYW4gPSBzcWwtPmNvbHVtbkJsb2JBc1NwYW4oMTEpOwogICAgICAgICBpZiAoc2NyaXB0UmVz
b3VyY2VNYXBEYXRhU3Bhbi5zaXplKCkpIHsKICAgICAgICAgICAgIFdURjo6UGVyc2lzdGVuY2U6
OkRlY29kZXIgc2NyaXB0UmVzb3VyY2VNYXBEZWNvZGVyKHNjcmlwdFJlc291cmNlTWFwRGF0YVNw
YW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9S
ZWdpc3RyYXRpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcAppbmRleCAyMTkwNTc2MTYzODk3OTJlYzNhYzYwMTY1
MTgxMmMzNzU1OTIyOGNkLi40ODJkNzEwOGIwZmYxNDgwYWRkMjdiNzZmZGNiNzhmZWNhMzNmZGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lz
dHJhdGlvblN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgUmVnaXN0
cmF0aW9uU3RvcmU6OmFkZFJlZ2lzdHJhdGlvbkZyb21EYXRhYmFzZShTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmJiBkCiAgICAgbV9zZXJ2ZXIuYWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKFdURk1v
dmUoZGF0YSkpOwogfQogCi12b2lkIFJlZ2lzdHJhdGlvblN0b3JlOjpkaWRTYXZlV29ya2VyU2Ny
aXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4m
JiBpbXBvcnRlZFNjcmlwdHMpCit2b2lkIFJlZ2lzdHJhdGlvblN0b3JlOjpkaWRTYXZlV29ya2Vy
U2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKQogewogICAgIG1fc2Vy
dmVyLmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
VEZNb3ZlKG1haW5TY3JpcHQpLCBXVEZNb3ZlKGltcG9ydGVkU2NyaXB0cykpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25T
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRp
b25TdG9yZS5oCmluZGV4IDNiM2NkOTg3YjcxZTQyNDcxZjFlMjI2Njc1MDcwNTk0OTFlMmNiM2Qu
LjA1ZWEwYmMzNjFkNGRlMzZmMWIwMzkyYTFiYTA3OTcyZDllZjYxMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0
b3JlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9u
RnJvbURhdGFiYXNlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmKTsKICAgICB2b2lkIGRhdGFi
YXNlRmFpbGVkVG9PcGVuKCk7CiAgICAgdm9pZCBkYXRhYmFzZU9wZW5lZEFuZFJlY29yZHNJbXBv
cnRlZCgpOwotICAgIHZvaWQgZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3Jp
cHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKKyAgICB2b2lkIGRpZFNhdmVXb3JrZXJTY3Jp
cHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2Ny
aXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBp
bXBvcnRlZFNjcmlwdHMpOwogCiAgICAgU1dTZXJ2ZXImIHNlcnZlcigpIHsgcmV0dXJuIG1fc2Vy
dmVyOyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCmluZGV4IGRhMWIwOWE1MzU3ZThmYjU1NTJjYmZjZTBhNDU2ZDYyODMzNTI3
ZjYuLjM0ZTQ0OTU3OWNjYTIyNjNkYzhlMGFmYWJiODkxNjQ1MjU1NTJkOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGRhdGEpCiAgICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2
ZXI6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBIYXNoTWFw
PFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cykKK3ZvaWQgU1dTZXJ2ZXI6OmRp
ZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCiB7
CiAgICAgaWYgKGF1dG8gd29ya2VyID0gd29ya2VyQnlJRChzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpCiAgICAgICAgIHdvcmtlci0+ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soV1RGTW92ZShtYWluU2Ny
aXB0KSwgV1RGTW92ZShpbXBvcnRlZFNjcmlwdHMpKTsKQEAgLTcxNyw3ICs3MTcsNyBAQCB2b2lk
IFNXU2VydmVyOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIFNlcgogICAgICAgICByZWdpc3RyYXRpb24tPnJlbW92ZUNsaWVudFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpOwogfQogCi12
b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJh
dGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kmIGNvZXAsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdv
cmtlclR5cGUgdHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1w
b3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXAsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKK3Zv
aWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0
aW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeSYgY29lcCwgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29y
a2VyVHlwZSB0eXBlLCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXAsIHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3Jr
ZXJQYWdlSWRlbnRpZmllcikKIHsKICAgICB0cnlJbnN0YWxsQ29udGV4dERhdGEoU2VydmljZVdv
cmtlckNvbnRleHREYXRhIHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCks
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBzY3JpcHQsIGNlcnRpZmljYXRl
SW5mbywgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb2VwLCByZWZlcnJlclBvbGljeSwgdXJsLCB0
eXBlLCBmYWxzZSwgY2xpZW50SXNBcHBJbml0aWF0ZWRGb3JSZWdpc3RyYWJsZURvbWFpbihSZWdp
c3RyYWJsZURvbWFpbih1cmwpKSwgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCksIHNlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllciwgeyB9IH0pOwogfQpAQCAtODAxLDcgKzgwMSw3IEBAIHZvaWQg
U1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEmIGRhdGEpCiAgICAgfQogCiAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zY29wZVRvUmVn
aXN0cmF0aW9uTWFwLmdldChkYXRhLnJlZ2lzdHJhdGlvbi5rZXkpLmdldCgpOwotICAgIGF1dG8g
d29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmNyZWF0ZSgqdGhpcywgKnJlZ2lzdHJhdGlvbiwgZGF0
YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBkYXRhLmNlcnRpZmljYXRlSW5mbywgZGF0YS5jb250
ZW50U2VjdXJpdHlQb2xpY3ksIGRhdGEuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgU3RyaW5n
IHsgZGF0YS5yZWZlcnJlclBvbGljeSB9LCBkYXRhLndvcmtlclR5cGUsIGRhdGEuc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6Oklt
cG9ydGVkU2NyaXB0PiB7IGRhdGEuc2NyaXB0UmVzb3VyY2VNYXAgfSk7CisgICAgYXV0byB3b3Jr
ZXIgPSBTV1NlcnZlcldvcmtlcjo6Y3JlYXRlKCp0aGlzLCAqcmVnaXN0cmF0aW9uLCBkYXRhLnNj
cmlwdFVSTCwgZGF0YS5zY3JpcHQsIGRhdGEuY2VydGlmaWNhdGVJbmZvLCBkYXRhLmNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgZGF0YS5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCBTdHJpbmcgeyBk
YXRhLnJlZmVycmVyUG9saWN5IH0sIGRhdGEud29ya2VyVHlwZSwgZGF0YS5zZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiB7IGRhdGEuc2NyaXB0UmVzb3VyY2VNYXAg
fSk7CiAKICAgICBhdXRvKiBjb25uZWN0aW9uID0gd29ya2VyLT5jb250ZXh0Q29ubmVjdGlvbigp
OwogICAgIEFTU0VSVChjb25uZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA0ZTI5ZmJlNGMzZDkxYjRlYjk3NjM5N2Rm
ZWFiZDQ5Yjk3YzFiYjk3Li5kM2M0OWYyYWMwYzFhNGEzZWU2NDAzMmU0ZTM3NmQzODBiOGFkNDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KQEAgLTE1Niw3ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNvbHZlVW5y
ZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiAgICAg
dm9pZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgU1dTZXJ2
ZXJSZWdpc3RyYXRpb24mKTsKIAotICAgIHZvaWQgdXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJM
JiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEhh
c2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmLCBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgdXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJM
JiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIE1l
bW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRh
OjpJbXBvcnRlZFNjcmlwdD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZpcmVJ
bnN0YWxsRXZlbnQoU1dTZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50
KFNXU2VydmVyV29ya2VyJik7CiAKQEAgLTE5Nyw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYp
OwogCiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb25Gcm9tU3RvcmUoU2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiYpOwotICAgIHZvaWQgZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBT
Y3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKKyAgICB2b2lkIGRpZFNhdmVXb3JrZXJT
Y3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWlu
U2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4m
JiBpbXBvcnRlZFNjcmlwdHMpOwogICAgIHZvaWQgcmVnaXN0cmF0aW9uU3RvcmVJbXBvcnRDb21w
bGV0ZSgpOwogICAgIHZvaWQgcmVnaXN0cmF0aW9uU3RvcmVEYXRhYmFzZUZhaWxlZFRvT3Blbigp
OwogICAgIHZvaWQgc3RvcmVSZWdpc3RyYXRpb25Gb3JXb3JrZXIoU1dTZXJ2ZXJXb3JrZXImKTsK
QEAgLTI5MSw3ICsyOTIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIFdlYWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+PiBtX3NlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllclRvUmVnaXN0cmF0aW9uTWFwOwogICAgIEhhc2hNYXA8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4+IG1fY2xpZW50c0J5SWQ7CiAgICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IG1fY2xp
ZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlvbjsKLSAgICBIYXNoTWFwPFN0cmluZywgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENs
aWVudElkTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5h
bENsaWVudElkTWFwOwogCiAgICAgVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+IG1fb3JpZ2luU3Rv
cmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdHJhdGlvblN0b3JlPiBtX3JlZ2lzdHJhdGlv
blN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggNTY5YjFh
YzMwZTJkNDI5NDNhY2M5NTVjODllZWViOTQxODdhNGQwMy4uZjYyNzA5N2ExNzQxZjVhZWQ0Y2Ew
MDdjODQyM2Q0NzU5ZjA3YzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUluc3Rh
bGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+
JiBpbXBvcnRlZFNjcmlwdHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVNjcmlwdHNU
b0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0
ZWRTY3JpcHRzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2
NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERh
dGE+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlUHVzaEV2ZW50KFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVOb3Rp
ZmljYXRpb25FdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgTm90aWZpY2F0aW9u
RGF0YSYsIE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCBkMTllOWVhZWFjZWRmZmQ5YWFlYmRiMTE5
NTFjOGM5N2MxMGVjZGFjLi41YzZiMmRiZGFiM2I3NGJiM2ZmMzk2YjNkOThkYWY4ZWU1MWEyZjAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBTV1NlcnZlcldvcmtlciogU1dT
ZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihTZXJ2aWNlV29ya2VySWRl
bnRpZgogfQogCiAvLyBGSVhNRTogVXNlIHItdmFsdWUgcmVmZXJlbmNlcyBmb3Igc2NyaXB0IGFu
ZCBjb250ZW50U2VjdXJpdHlQb2xpY3kKLVNXU2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtlcihT
V1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25z
dCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRp
ZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeSYgY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgU3RyaW5nJiYgcmVmZXJy
ZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3Jp
cHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXApCitTV1NlcnZlcldvcmtlcjo6U1dTZXJ2ZXJXb3JrZXIo
U1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kmIGNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3ksIFN0cmluZyYmIHJlZmVy
cmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3JpcHRSZXNvdXJjZU1hcCkKICAgICA6IG1f
c2VydmVyKHNlcnZlcikKICAgICAsIG1fcmVnaXN0cmF0aW9uS2V5KHJlZ2lzdHJhdGlvbi5rZXko
KSkKICAgICAsIG1fcmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbikKQEAgLTI2OCw3ICsyNjgsNyBA
QCB2b2lkIFNXU2VydmVyV29ya2VyOjpzZXRTY3JpcHRSZXNvdXJjZShVUkwmJiB1cmwsIFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wbwogICAgIG1fc2NyaXB0UmVzb3VyY2VNYXAuc2V0KFdU
Rk1vdmUodXJsKSwgV1RGTW92ZShzY3JpcHQpKTsKIH0KIAotdm9pZCBTV1NlcnZlcldvcmtlcjo6
ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxV
UkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCit2b2lkIFNXU2VydmVyV29ya2Vy
OjpkaWRTYXZlU2NyaXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlw
dHMpCiB7CiAgICAgLy8gU2VuZCBtbWFwJ2QgdmVyc2lvbiBvZiB0aGUgc2NyaXB0cyB0byB0aGUg
U2VydmljZVdvcmtlciBwcm9jZXNzIHNvIHdlIGNhbiBzYXZlIGRpcnR5IG1lbW9yeS4KICAgICBp
ZiAoYXV0byogY29udGV4dENvbm5lY3Rpb24gPSB0aGlzLT5jb250ZXh0Q29ubmVjdGlvbigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5oCmluZGV4IDcxN2Q1NTllZGJmMzgxYjA1YzU3MjBlNThlNmM0OWViNmM2ZDA3YzUu
LjliZDU2N2MzY2I5NzExNTE4ODk3OTQ5YzIxOTA4NTY1ODJmNzY1NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgK
QEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVJMSGFzaC5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTEwNiw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYpOwogICAgIHZvaWQgbWF0
Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3Jr
ZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKTsKICAgICB2b2lkIHNldFNjcmlwdFJlc291cmNl
KFVSTCYmLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0JiYpOwotICAg
IHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFz
aE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOworICAgIHZvaWQgZGlk
U2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsK
IAogICAgIHZvaWQgc2tpcFdhaXRpbmcoKTsKICAgICBib29sIGlzU2tpcFdhaXRpbmdGbGFnU2V0
KCkgY29uc3QgeyByZXR1cm4gbV9pc1NraXBXYWl0aW5nRmxhZ1NldDsgfQpAQCAtMTQ0LDcgKzE0
NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ2xpZW50QWN0aXZlU2Vy
dmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgU1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlv
biYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IENlcnRpZmljYXRlSW5m
byYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IENy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBTdHJpbmcmJiByZWZlcnJlclBvbGljeSwgV29ya2Vy
VHlwZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmKTsKKyAgICBTV1NlcnZlcldvcmtlcihTV1Nl
cnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVm
ZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIFN0cmlu
ZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE6OkltcG9ydGVkU2NyaXB0PiYmKTsKIAogICAgIHZvaWQgY2FsbFdoZW5BY3RpdmF0ZWRIYW5k
bGVyKGJvb2wgc3VjY2Vzcyk7CiAKQEAgLTE2OSw3ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIFJl
Z2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21haW47CiAgICAgYm9vbCBtX2lzU2tpcFdh
aXRpbmdGbGFnU2V0IHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4+IG1fd2hlbkFjdGl2YXRlZEhhbmRsZXJzOwotICAgIEhhc2hNYXA8VVJMLCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBtX3NjcmlwdFJlc291cmNlTWFw
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gbV9zY3JpcHRSZXNvdXJjZU1hcDsKICAgICBib29s
IG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVGltZWRP
dXRBbnlGZXRjaFRhc2tzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPj4gbV90ZXJtaW5hdGlvbkNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggMDAzODU0YjYxMGYzMzFkN2U4
NDQ5OWJlOWIxY2Q2NjYzNmUxZmQzNS4uZjg2ODA5OWI1ODc5NDZhYzRjZDNhNWZhOWJhZWVkMzYz
MGNiNzU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcgog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpUZXJtaW5h
dGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OmRpZFNhdmVTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTY3JpcHRCdWZmZXImIHNj
cmlwdCwgY29uc3QgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykK
K3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRTYXZlU2NyaXB0c1RvRGlz
ayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
U2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKQogewogI2lmIEVOQUJMRShTSEFS
RUFCTEVfUkVTT1VSQ0UpICYmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIFNlbmQgZmlsZS1tYXBw
ZWQgU2NyaXB0QnVmZmVycyBvdmVyIHRvIHRoZSBTZXJ2aWNlV29ya2VyIHByb2Nlc3Mgc28gdGhh
dCBpdCBjYW4gcmVwbGFjZSBpdHMgaGVhcC1hbGxvY2F0ZWQgY29waWVzIGFuZCBzYXZlIG9uIGRp
cnR5IG1lbW9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uaAppbmRleCA0ZWQwNmUyODY5MmI0MmM4YTRjOGI2ZmIxMGEwN2M0ZDIzZDVjOWI4Li42
MmEyZDk2Y2U0YTcyMmExYzlmYWUxOGNiOTQ2NGEyYTQ0OTdlNzU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC05NCw3ICs5NCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBkaWRT
YXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29uc3QgSGFzaE1hcDxVUkwsIFdlYkNvcmU6OlNjcmlw
dEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgZmluYWw7CisgICAgdm9pZCBkaWRTYXZlU2NyaXB0
c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2NyaXB0QnVmZmVyJiwgY29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBX
ZWJDb3JlOjpTY3JpcHRCdWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMpIGZpbmFsOwogICAgIHZvaWQg
bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIGZp
cmVQdXNoRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpIGZpbmFsOwogICAgIHZvaWQgZmlyZU5vdGlmaWNhdGlvbkV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJiwgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRXZlbnRUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggZmQ1YWI4MWEzY2I4YWYxNTc1NTcyNDUzZTJjZmM1M2FmNGMw
YjJjZi4uOWM3MmQ1YzNhMTJlYzE0Nzc5ZWRlYTc0ZDBmZTE5MGZjZDNkOTNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTUwNiw3ICs1MDYsNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIHBhcmFtZXRlcnMubG9hZHNTdWJyZXNvdXJjZXMgPSAqbG9hZHNT
dWJyZXNvdXJjZXM7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxT
dHJpbmc+Pj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0
aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+PiBh
bGxvd2VkTmV0d29ya0hvc3RzOwogICAgIGRlY29kZXIgPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsK
ICAgICBpZiAoIWFsbG93ZWROZXR3b3JrSG9zdHMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggODRmYzQ2YzZmOWE2NGNkN2ZhM2JjODU5MDFhZjBiYmIwYTY4NTVkOS4uYzE4OTY5
ZWM2MDg3Y2M5YjZjNzU4ZThhYTMyOTI4ZDAyNzcyZDIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNTAsNyArNTAsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQpAQCAtMjI0
LDcgKzIyNCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBWZWN0
b3I8U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CiAgICAgYm9vbCB1c2VyU2NyaXB0c1No
b3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUgfTsKICAgICBib29sIGxvYWRzU3VicmVz
b3VyY2VzIHsgdHJ1ZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxTdHJpbmc+PiBhbGxv
d2VkTmV0d29ya0hvc3RzOworICAgIHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9u
bHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWROZXR3b3JrSG9zdHM7CiAKICAgICBi
b29sIGNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCB7IHRydWUgfTsKICAgICBT
dHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBiNWI1ZTI1YjRkNjRlOGJiZTZmZWFk
M2FlMmFmYTVkMGI2OTFjNDg3Li41NGE4YmVlMzY1Y2I4ODMwYzFkYmE3ZjM5ODZmZDUzYTEwMjJm
ZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZp
Z3VyYXRpb24uaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
QEAgLTE1Nyw4ICsxNTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcygp
IGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNTdWJyZXNvdXJjZXM7IH0KICAgICB2b2lkIHNldExvYWRz
U3VicmVzb3VyY2VzKGJvb2wgbG9hZHMpIHsgbV9sb2Fkc1N1YnJlc291cmNlcyA9IGxvYWRzOyB9
CiAKLSAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYgYWxsb3dl
ZE5ldHdvcmtIb3N0cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE5ldHdvcmtIb3N0czsgfQot
ICAgIHZvaWQgc2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V1RG
OjpTdHJpbmc+PiYmIGhvc3RzKSB7IG1fYWxsb3dlZE5ldHdvcmtIb3N0cyA9IFdURk1vdmUoaG9z
dHMpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxNZW1vcnlDb21wYWN0TG9va3VwT25seVJv
YmluSG9vZEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYgYWxsb3dlZE5ldHdvcmtIb3N0cygpIGNvbnN0
IHsgcmV0dXJuIG1fYWxsb3dlZE5ldHdvcmtIb3N0czsgfQorICAgIHZvaWQgc2V0QWxsb3dlZE5l
dHdvcmtIb3N0cyhzdGQ6Om9wdGlvbmFsPE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29k
SGFzaFNldDxXVEY6OlN0cmluZz4+JiYgaG9zdHMpIHsgbV9hbGxvd2VkTmV0d29ya0hvc3RzID0g
V1RGTW92ZShob3N0cyk7IH0KIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBi
b29sIGlnbm9yZXNBcHBCb3VuZERvbWFpbnMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNBcHBC
b3VuZERvbWFpbnM7IH0KQEAgLTIzNSw3ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9j
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQgeyB0cnVlIH07CiAgICAgV1RGOjpT
dHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAgICAgYm9vbCBtX2xvYWRzU3VicmVzb3VyY2Vz
IHsgdHJ1ZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxXVEY6OlN0cmluZz4+IG1fYWxs
b3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lbW9yeUNvbXBhY3RMb29rdXBP
bmx5Um9iaW5Ib29kSGFzaFNldDxXVEY6OlN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsK
ICAgICAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiAgICAgYm9vbCBtX2lnbm9yZXNB
cHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCAxMmI5
YzUwNzJlZDczMjhkNDBjNGYzZWNjN2FhNjI0OWZjYTZkZjg4Li5lODc4OWE5MWU5Y2M3NmRlZTQ2
ZGE0NzE4ZGJlMjNmM2ZjMWYwYmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNDYsNiAr
NDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvVVJMUGFyc2VyLmg+
CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgpAQCAtOTgyLDcgKzk4Myw3IEBAIC0gKHZvaWQpX3Nl
dENPUlNEaXNhYmxpbmdQYXR0ZXJuczooTlNBcnJheTxOU1N0cmluZyAqPiAqKXBhdHRlcm5zCiAK
IC0gKHZvaWQpX3NldExvYWRzRnJvbU5ldHdvcms6KEJPT0wpbG9hZHMKIHsKLSAgICBfcGFnZUNv
bmZpZ3VyYXRpb24tPnNldEFsbG93ZWROZXR3b3JrSG9zdHMobG9hZHMgPyBzdGQ6Om51bGxvcHQg
OiBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nPj4geyBIYXNoU2V0PFN0cmluZz4geyB9IH0p
OworICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhsb2FkcyA/
IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6b3B0aW9uYWwgeyBNZW1vcnlDb21wYWN0TG9va3VwT25seVJv
YmluSG9vZEhhc2hTZXQ8U3RyaW5nPiB7IH0gfSk7CiB9CiAKIC0gKEJPT0wpX2xvYWRzRnJvbU5l
dHdvcmsKQEAgLTk5NCw3ICs5OTUsNyBAQCAtICh2b2lkKV9zZXRBbGxvd2VkTmV0d29ya0hvc3Rz
OihOU1NldDxOU1N0cmluZyAqPiAqKWhvc3RzCiB7CiAgICAgaWYgKCFob3N0cykKICAgICAgICAg
cmV0dXJuIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhzdGQ6Om51
bGxvcHQpOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBzZXQ7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1
cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gc2V0OwogICAgIGZvciAoTlNTdHJpbmcgKmhv
c3QgaW4gaG9zdHMpCiAgICAgICAgIHNldC5hZGQoaG9zdCk7CiAgICAgX3BhZ2VDb25maWd1cmF0
aW9uLT5zZXRBbGxvd2VkTmV0d29ya0hvc3RzKFdURk1vdmUoc2V0KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458037</attachid>
            <date>2022-04-20 21:19:23 -0700</date>
            <delta_ts>2022-04-21 08:43:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239576-20220420211922.patch</filename>
            <type>text/plain</type>
            <size>114908</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE2NGY4MzU4ZmEwZTU1NTNjYzc2ZWU5
YzlmZDkzNDdhZjIwOGJhY2MuLjZjZDY0YWJmODIwNzY1MTI2YmFhMmM0OGZlYTFhNzljNTc0M2E2
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29k
SGFzaFNldCBtb3JlIGJyb2FkbHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdXNpbmcgUm9iaW5Ib29kSGFzaE1hcCAvIFJv
YmluSG9vZEhhc2hTZXQgd2l0aCBVUkwga2V5cyBzaW5jZSBhIFVSTCB3cmFwcyBhIFN0cmluZwor
ICAgICAgICBhbmQgdXNlcyBpdHMgaW50ZXJuYWwgU3RyaW5nJ3MgY2FjaGVkIGhhc2ggYXMgaGFz
aC4KKworICAgICAgICAqIHd0Zi9VUkxIYXNoLmg6CisKIDIwMjItMDQtMjAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHRydWUgLyBmYWxzZSBBdG9tU3Ry
aW5ncyB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5kIHJldXNlIHRoZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmY3NGRmMDFjOTA5YzJjODE3NTQyN2JkNWZkNWRiZGNiNjI2ZjY1Li4wMmJmN2JiN2FkYjcyYjBi
OTc4NmNjZDQwYjNmM2FhY2FlMzAyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI0IEBACisy
MDIyLTA0LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5IGluIFdl
YkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
b3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUgYnJvYWRseSBpbiBX
ZWJDb3JlIHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5IGluIGhhc2ggdGFibGVzLgorICAgICAgICBS
b2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBoYXZlIG1vcmUgcmVzdHJpY3Rpb25z
IG9uIHdoYXQga2V5IHR5cGVzIHRoZXkgd29yayB3aXRoIGFuZCBtYXkgcmVzdWx0CisgICAgICAg
IGluIHNsaWdodGx5IGxvd2VyIHBlcmZvcm1hbmNlIGJ1dCB0aGV5IGhhdmUgYSBtdWNoIGhpZ2hl
ciBsb2FkIGZhY3RvciB0aGF0IHRoZSByZWd1bGFyIEhhc2hNYXAgLyBIYXNoU2V0LAorICAgICAg
ICB0aHVzIHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4gVGhpcyBwYXRjaCBhZG9wdHMgUm9iaW5Ib29k
SGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgb24gbm9uIHBlcmZvcm1hbmNlCisgICAgICAgIHNl
bnNpdGl2ZSBtYXBzIC8gc2V0cyBpbiBXZWJDb3JlIHRoYXQgaGF2ZSBjb21wYXRpYmxlIGtleXMg
KFN0cmluZyAvIEF0b21TdHJpbmcgLyBVUkwgYmVjYXVzZSB0aGV5IGNhY2hlCisgICAgICAgIHRo
ZWlyIGhhc2gpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJl
Z2lzdHJ5Lmg6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5
Q0RNU2Vzc2lvbkNsZWFyS2V5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmg6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5j
cHA6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtTWFwLmg6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1BhcmFtTWFwOjptYXAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RGcm96
ZW5LZXlWYWx1ZU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5RGF0YUZyb21QYXJhbWV0
ZXJNYXBUb0pTT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nv
cjo6YnVpbGRKU0FyZ3VtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9j
ZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpwYXJhbWV0ZXJEZXNjcmlw
dG9yTWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldURl9SRVFVSVJFU19MT0NLKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRyYWNrZXI6OnJlY29yZERlbGV0aW5nRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5Ojpwcm9taXNlTWFwKToKKyAg
ICAgICAgKiBkb20vRXh0ZW5zaW9uU3R5bGVTaGVldHMuaDoKKyAgICAgICAgKiBkb20vTXV0YXRp
b25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNl
cnZlKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb246OnJlc2V0T2JzZXJ2YXRpb24pOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAqIGRvbS9XaW5kb3dFdmVudExvb3AuY3BwOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3Vy
Y2VzT2JqZWN0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtSZXNvdXJjZXNEYXRhOjpjbGVhcik6CisgICAg
ICAgICogaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0QWN0aXZlQ29udGVudFJ1bGVMaXN0QWN0
aW9uUGF0dGVybnMpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBw
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJlY3RpdmUuaDoKKyAgICAg
ICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V1RGX1JFUVVJUkVTX0xPQ0spOgorICAgICAgICAqIHBsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6dXBkYXRlVHJhY2tzT2ZLaW5kKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
VVRJUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVt
Rm9udERhdGFiYXNlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJpY0ZhbWls
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNl
Q29yZVRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW06CisgICAg
ICAgIChXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRl
bnRpYWxTdG9yYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVmZXJlbmNlZFNWR1Jlc291cmNlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OmRlY29kZSk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdHJpcFNjcmlwdFNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6cG9w
dWxhdGVTY3JpcHRTb3VyY2VzRnJvbURpc2spOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0
aW9uRGF0YWJhc2U6OmRvUHVzaENoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0
aW9uRGF0YWJhc2U6OmltcG9ydFJlY29yZHMpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0
aW9uU3RvcmU6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
ZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6
OnVwZGF0ZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6aW5zdGFsbENvbnRl
eHREYXRhKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2spOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKwogMjAy
Mi0wNC0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgZm9sbG93LXVwIHRvIHIyOTMxMjMgdG8gYWRkcmVzcyByZXZpZXcgZmVlZGJhY2sgZnJv
bSBTYW0gJiBEYXJpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1YTNmMGM2YzhkMGUwZWU1ODVkM2FmNGZhMDI3NTg5
MzZjNjI3ZDRmLi4wNWRhZTgxYmY1MzU5M2Y4YjY4NDU1YzQ4YWNlNjIxNzU2ZTcxMDcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhh
c2hTZXQgbW9yZSBicm9hZGx5IGluIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RI
YXNoU2V0IG1vcmUgYnJvYWRseSBpbiBXZWJLaXQgdG8gYXZvaWQgd2FzdGluZyBtZW1vcnkgaW4g
aGFzaCB0YWJsZXMuCisgICAgICAgIFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0
IGhhdmUgbW9yZSByZXN0cmljdGlvbnMgb24gd2hhdCBrZXkgdHlwZXMgdGhleSB3b3JrIHdpdGgg
YW5kIG1heSByZXN1bHQKKyAgICAgICAgaW4gc2xpZ2h0bHkgbG93ZXIgcGVyZm9ybWFuY2UgYnV0
IHRoZXkgaGF2ZSBhIG11Y2ggaGlnaGVyIGxvYWQgZmFjdG9yIHRoYXQgdGhlIHJlZ3VsYXIgSGFz
aE1hcCAvIEhhc2hTZXQsCisgICAgICAgIHRodXMgcmVkdWNpbmcgbWVtb3J5IHVzYWdlLiBUaGlz
IHBhdGNoIGFkb3B0cyBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBvbiBub24g
cGVyZm9ybWFuY2UKKyAgICAgICAgc2Vuc2l0aXZlIG1hcHMgLyBzZXRzIGluIFdlYkNvcmUgdGhh
dCBoYXZlIGNvbXBhdGlibGUga2V5cyAoU3RyaW5nIC8gQXRvbVN0cmluZyAvIFVSTCBiZWNhdXNl
IHRoZXkgY2FjaGUKKyAgICAgICAgdGhlaXIgaGFzaCkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkU2F2ZVNj
cmlwdHNUb0Rpc2spOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
OgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6YWxsb3dlZE5ldHdvcmtIb3N0cyBj
b25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpzZXRBbGxvd2VkTmV0d29y
a0hvc3RzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldExvYWRzRnJv
bU5ldHdvcms6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEFsbG93
ZWROZXR3b3JrSG9zdHM6XSk6CisKIDIwMjItMDQtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpT1MgMTUuNCBi
dWlsZCBhZnRlciByMjkzMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkxIYXNoLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9VUkxIYXNoLmgKaW5kZXggMjY5ZTJiNTk4NGMwNTliYWZiZjQyOTNk
MGRmNDEzODE5NzE1YWNiOS4uOTdhM2VlNTVlZWZiZTc0ZGVlNmVjMGNkMGMxZmQyZmNiMGY4ZmUw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMSGFzaC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1VSTEhhc2guaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgVVJMSGFzaCB7CiAgICAgfQog
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhhc0hhc2hJblZhbHVlID0gdHJ1
ZTsKIH07CiAKIC8vIFVSTEhhc2ggaXMgdGhlIGRlZmF1bHQgaGFzaCBmb3IgU3RyaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFS
ZWdpc3RyeS5oCmluZGV4IDc3ZDYwNGIwOGJiN2Y3ZTM4YmNjYjM1NDViMzRjOGIxMzQzNTVlZjIu
Ljc3Njc2MjY0Nzg5YjI2NWUxMTM0OTg5YTJhMDkxYjcyYTJiZDU4NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3Ry
eS5oCkBAIC0yOCw5ICsyOCw5IEBACiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIAogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9i
aW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4K
QEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBJbml0RGF0YVJlZ2lzdHJ5KCk7CiAgICAg
fkluaXREYXRhUmVnaXN0cnkoKTsKIAotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgSW5pdERhdGFU
eXBlQ2FsbGJhY2tzPiBtX3R5cGVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PEF0b21TdHJpbmcsIEluaXREYXRhVHlwZUNhbGxiYWNrcz4gbV90eXBlczsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xl
Z2FjeUNETVNlc3Npb25DbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmgKaW5kZXggYTliNGQwYTM2
M2VkNThiNGMwZDQyYTQzMmNlOTc4NGU3MWE3MWEyMC4uZDUyMjNlNjUzMjJhMDU1NDNiZjBlOWNi
NjkxYzUyZGJlYWY5Y2UxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNs
ZWFyS2V5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiTGVn
YWN5Q0RNU2Vzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
I2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQpAQCAtNTAsNyArNTAsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFdlYWtQdHI8TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudD4gbV9jbGll
bnQ7CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1faW5pdERhdGE7Ci0gICAgSGFzaE1hcDxTdHJp
bmcsIFZlY3Rvcjx1aW50OF90Pj4gbV9jYWNoZWRLZXlzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPHVpbnQ4X3Q+PiBtX2NhY2hlZEtleXM7CiAgICAg
U3RyaW5nIG1fc2Vzc2lvbklkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaAppbmRl
eCBiZDBmY2E4Zjk3MTBkM2Y3N2M1Mjc2MjExMzgyMGNkZDQyZmIwOGZmLi5mMmVmNDgxMDQxZTQw
MzRhMzBlYjMxZjNjMGEyMzQxYjdjODNlNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24u
aApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgogI2lu
Y2x1ZGUgIkluZGV4ZWREQi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg4LDcg
Kzg4LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPFNRTGl0ZUlEQkN1cnNvcj4+IG1fY3Vyc29yczsKICAgICBIYXNoU2V0PFNR
TGl0ZUlEQkN1cnNvcio+IG1fYmFja2luZ1N0b3JlQ3Vyc29yczsKICAgICBWZWN0b3I8c3RkOjpw
YWlyPFN0cmluZywgU3RyaW5nPj4gbV9ibG9iVGVtcG9yYXJ5QW5kU3RvcmVkRmlsZW5hbWVzOwot
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2Jsb2JSZW1vdmVkRmlsZW5hbWVzOworICAgIE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9ibG9iUmVtb3ZlZEZpbGVuYW1lczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaAppbmRleCBiN2RmZTQ0
YjI1ZmM0NzcyMTc0YWE2NDZlNGI1OGMwYTMyZWUyMjlkLi5hNzVlNDkzZDM1Mzc1NDY0MTEyMGRi
NWFmMDMzZDU1Nzg2ODRhMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaApAQCAtMzMsNyArMzMsNyBAQAog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgotI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1lZGlhU291cmNlUmVn
aXN0cnkoKTsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU291cmNlPj4gbV9tZWRp
YVNvdXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQ
dHI8TWVkaWFTb3VyY2U+PiBtX21lZGlhU291cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5oCmluZGV4IGUxOGQ1NGQ0MDZjMzU3MzVjNjQ5YmI3YTk3ZThlY2JjNzM0Njc2NjcuLmE0
OTQxYjI5M2YyNjQ3MTcwYmM0YzlhZWExNmUzZTkyY2I5OGYyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJU
aW1lci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTMzLDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PEdlc3R1
cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAgICBX
ZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKIAotICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElk
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1
ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZDsKICAgICBTdHJpbmcgbV9hdWRpb091dHB1
dERldmljZUlkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5oCmluZGV4IDc0MzE4MGQyOWJlYzUzNTdkZjBjMWU0ODJmZThhMjU2NGRi
ZTkwN2UuLjI0YmY1MWY4MzEzMWEyZDk5MjFmYTMyOTI0YjI5ZTdhZWJkYjk5ZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKQEAgLTM4
LDkgKzM4LDkgQEAKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgIlVSTFJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8TWVkaWFTdHJlYW1Qcml2
YXRlPiBtX3ByaXZhdGU7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2s+PiBtX3RyYWNrU2V0OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0
cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+PiBtX3RyYWNrU2V0OwogCiAgICAgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50LmgKaW5kZXggY2ZjYTZlZGYyMmRhNzI3NTI2NjBkMjI3NjA4MmQ5MDFm
ODM1NmQ3ZS4uMTlkMThkMTM2NzZkZDgyM2Q1ZGQzYTZiZDM3MWVhMmNiMDY5NjE0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtNDQsNiArNDQsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJT
X0VORAogCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSB3ZWJydGMgewpAQCAtMTkwLDEzICsxOTEsMTMgQEAgcHJpdmF0ZToKICAgICBT
ZXRMb2NhbFNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+
IG1fc2V0TG9jYWxTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlcjsKICAgICBTZXRSZW1vdGVTZXNz
aW9uRGVzY3JpcHRpb25PYnNlcnZlcjxMaWJXZWJSVENNZWRpYUVuZHBvaW50PiBtX3NldFJlbW90
ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxNZWRpYVN0cmVhbT4+IG1fcmVtb3RlU3RyZWFtc0J5SWQ7CisgICAgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW0+PiBtX3JlbW90ZVN0cmVh
bXNCeUlkOwogICAgIEhhc2hNYXA8TWVkaWFTdHJlYW1UcmFjayosIFZlY3RvcjxTdHJpbmc+PiBt
X3JlbW90ZVN0cmVhbXNGcm9tUmVtb3RlVHJhY2s7CiAKICAgICBib29sIG1faXNJbml0aWF0b3Ig
eyBmYWxzZSB9OwogICAgIFRpbWVyIG1fc3RhdHNMb2dUaW1lcjsKIAotICAgIEhhc2hNYXA8U3Ry
aW5nLCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZT4+IG1f
bG9jYWxTdHJlYW1zOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2Fs
U3RyZWFtczsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENQcm92aWRlcjo6U3VzcGVu
ZGFibGVTb2NrZXRGYWN0b3J5PiBtX3J0Y1NvY2tldEZhY3Rvcnk7CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9X
ZWJMb2NrUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2Vi
TG9ja1JlZ2lzdHJ5LmNwcAppbmRleCBmNTUwNzgwYTgxZDYyNGYzMWQwZTE4MzM5M2U1NTE0MzUz
NDBhMWMyLi43OGUzYmM5NGI5YWQwODEwY2NmNzAyYjllYTE1ZDYyZjJlMDE2M2NmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJXZWJMb2NrTWFuYWdlclNuYXBzaG90Lmgi
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjYsOCArNjcsOCBAQCBwcml2YXRlOgogCiAgICAgV2Vha1B0cjxMb2NhbFdlYkxv
Y2tSZWdpc3RyeT4gbV9nbG9iYWxSZWdpc3RyeTsKICAgICBDbGllbnRPcmlnaW4gbV9jbGllbnRP
cmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hl
bGRMb2NrczsKKyAgICBGYXN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1
ZXN0Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOworICAgIEZhc3RSb2Jpbkhvb2RIYXNoTWFwPFN0
cmluZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxkTG9ja3M7CiB9OwogCiBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5oCmluZGV4IDFiZTM3ZGViOThi
ZWFiZDFlMWZlMTg0ZTUwN2JiMmEwM2Q1NTQxOTguLmFjYTQ3MTFiMjY3Y2FhOTg5MDU3MDA1YjQ5
MGFkYWRiNzgzOGY4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbU1hcC5oCkBAIC0yOSw4ICsyOSwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpZiBF
TkFCTEUoV0VCX0FVRElPKQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ4LDEyICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplTWFwTGlrZShET01N
YXBBZGFwdGVyJik7CiAgICAgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiwgUmVmPEF1ZGlvUGFyYW0+
JiYpOwogCi0gICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxBdWRpb1BhcmFtPj4mIG1hcCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9CisgICAgY29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hNYXA8U3RyaW5nLCBSZWY8QXVkaW9QYXJhbT4+JiBtYXAoKSBjb25zdCB7IHJldHVybiBt
X21hcDsgfQogCiBwcml2YXRlOgogICAgIEF1ZGlvUGFyYW1NYXAoKTsKIAotICAgIEhhc2hNYXA8
U3RyaW5nLCBSZWY8QXVkaW9QYXJhbT4+IG1fbWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFN0cmluZywgUmVmPEF1ZGlvUGFyYW0+PiBtX21hcDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBmODIyZTJiODMxMTRmYjQwNzQ2
MGIyNDgwY2JmNGQ2NjQyYzYwM2VhLi5jNzdkZDVlYWM3MDFlMWMzYmIxOTM5YmM5MDk1ZGE5NDUy
ZDAwOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0VGhyZWFkLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRl
ICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTgx
LDcgKzgyLDcgQEAgcHJpdmF0ZToKIAogICAgIHNpemVfdCBtX2N1cnJlbnRGcmFtZSB7IDAgfTsK
ICAgICBjb25zdCBmbG9hdCBtX3NhbXBsZVJhdGU7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxKU0F1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdG9yPj4gbV9wcm9jZXNzb3JDb25zdHJ1
Y3Rvck1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxKU0F1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdG9yPj4gbV9wcm9jZXNzb3JDb25zdHJ1
Y3Rvck1hcDsKICAgICBMb2NrIG1fcHJvY2Vzc29yc0xvY2s7CiAgICAgV2Vha0hhc2hTZXQ8QXVk
aW9Xb3JrbGV0UHJvY2Vzc29yLCBXVEY6OkVtcHR5Q291bnRlciwgRW5hYmxlV2Vha1B0clRocmVh
ZGluZ0Fzc2VydGlvbnM6Ok5vPiBtX3Byb2Nlc3NvcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3By
b2Nlc3NvcnNMb2NrKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29y
Q29uc3RydWN0aW9uRGF0YT4gbV9wZW5kaW5nUHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgK
aW5kZXggZDViNWE2MzMxZmUxYTJiN2Y5MzZhY2Y5ZmJmMGQzZTViMjZiYzM3My4uM2JkMmIwMzg5
ZjE2YjE4ODI5ZDYzYjQ2NWRkZTUyMGM3MTdjY2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKICNp
bmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAK
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkBAIC04Niw3ICs4Nyw3IEBA
IHByaXZhdGU6CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7CiAgICAgTG9jayBtX3Byb2Nl
c3NMb2NrOwogICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IG1fcHJvY2Vzc29yOyAv
LyBTaG91bGQgb25seSBiZSB1c2VkIG9uIHRoZSByZW5kZXJpbmcgdGhyZWFkLgotICAgIEhhc2hN
YXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVl
c01hcDsKKyAgICBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsKICAg
ICBUaHJlYWQqIG1fd29ya2xldFRocmVhZCB7IG51bGxwdHIgfTsKIAogICAgIC8vIEtlZXBzIHRo
ZSByZWZlcmVuY2Ugb2YgQXVkaW9CdXMgb2JqZWN0cyBmcm9tIEF1ZGlvTm9kZUlucHV0IGFuZCBB
dWRpb05vZGVPdXRwdXQgaW4gb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCAyODI0MDgyNWIy
ODRlN2IwODYzZDIyMDY5ZmQ4OGY0ZWVmNjRlOGUxLi5jYjdlMmUzOTk5YjBkMjExYzY5N2YzNTdl
YjhlODI3OWRiMzQ4MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHN0
YXRpYyBKU0Zsb2F0MzJBcnJheSogY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoSlNHbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgdW5zCiAgICAgcmV0dXJuIGpzQXJyYXk7CiB9CiAKLXN0YXRpYyBK
U09iamVjdCogY29uc3RydWN0RnJvemVuS2V5VmFsdWVPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCkKK3N0YXRpYyBKU09iamVjdCogY29u
c3RydWN0RnJvemVuS2V5VmFsdWVPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQog
ewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiBw
bGFpbk9iamVjdFN0cnVjdHVyZSA9IEpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
Jmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpLCAwKTsKQEAgLTE1
OSw3ICsxNTksNyBAQCBzdGF0aWMgYm9vbCBjb3B5RGF0YUZyb21CdXNlc1RvSlNBcnJheShKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0bwogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgYm9vbCBjb3B5RGF0YUZyb21QYXJhbWV0ZXJNYXBUb0pTT2JqZWN0KFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIEpTT2JqZWN0
KiBqc09iamVjdCkKK3N0YXRpYyBib29sIGNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmpl
Y3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBNZW1vcnlDb21w
YWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBKU09iamVjdCoganNPYmplY3QpCiB7CiAg
ICAgaWYgKCFqc09iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjE4LDcgKzIxOCw3
IEBAIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yKEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlJiBnbG9iYWxTY29wCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CiB9CiAKLXZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNl
JiBhcmdzLCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJl
ZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCkKK3ZvaWQgQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCwgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiBhcmdzLCBjb25zdCBWZWN0b3I8UmVm
UHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBj
b25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQogewogICAgIC8v
IEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB3ZSBjYWNoZSB0aGUgYXJyYXlzIHBhc3NlZCB0byBK
UyBhbmQgcmVjb25zdHJ1Y3QgdGhlbSBvbmx5IHdoZW4gdGhlIHRvcG9sb2d5IGNoYW5nZXMuCiAg
ICAgaWYgKCFjb3B5RGF0YUZyb21CdXNlc1RvSlNBcnJheShnbG9iYWxPYmplY3QsIGlucHV0cywg
dG9KU0FycmF5KG1fanNJbnB1dHMpKSkKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEF1ZGlvV29y
a2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplYwogICAgIGFyZ3MuYXBwZW5kKG1fanNQYXJhbVZhbHVlcy5nZXRWYWx1ZSgpKTsK
IH0KIAotYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJl
ZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywg
Y29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYg
cGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKQorYm9vbCBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMs
IFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1
cE9ubHlSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRB
cnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiB7CiAgICAgLy8g
SGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cg
dGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKaW5kZXggN2QyNTZlYTU1
N2JiODY2YzE1MWM3MzQ4MzAyYzJkMTEwOTNmYjM5OC4uM2NmOWNmZjBhNDIzMjNhZWJkMTI2MWU1
YjNhYjRkMzY5MmNlZmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJu
IG1fcG9ydC5nZXQoKTsgfQogCi0gICAgYm9vbCBwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8
QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFt
VmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbik7CisgICAgYm9vbCBwcm9jZXNzKGNvbnN0
IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4m
IG91dHB1dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAs
IGJvb2wmIHRocmV3RXhjZXB0aW9uKTsKIAogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGpz
SW5wdXRzV3JhcHBlcigpIHsgcmV0dXJuIG1fanNJbnB1dHM7IH0KICAgICBKU1ZhbHVlSW5XcmFw
cGVkT2JqZWN0JiBqc091dHB1dHNXcmFwcGVyKCkgeyByZXR1cm4gbV9qc091dHB1dHM7IH0KQEAg
LTY5LDcgKzcwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29y
a2xldFByb2Nlc3NvcihBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSYsIGNvbnN0IEF1ZGlvV29ya2xl
dFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEmKTsKLSAgICB2b2lkIGJ1aWxkSlNBcmd1bWVudHMo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVm
PEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKTsKKyAgICB2b2lkIGJ1aWxkSlNB
cmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3Vt
ZW50QnVmZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBW
ZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBP
bmx5Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJy
YXk+PiYgcGFyYW1WYWx1ZXNNYXApOwogCiAgICAgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUmIG1f
Z2xvYmFsU2NvcGU7CiAgICAgU3RyaW5nIG1fbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggNGFmZmFjMzNlMzQyNGMz
ZmFiNWFhNWIyYmVkMGQ3NDQ3NjcyMmZkNS4uNmUzYjg3ZjRlOGQxZDA3NmQ5OTQ2M2E5ZjdmN2Nm
Mjg5MGUxODMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9nZ2Vy
SGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVj
dXJzaXZlTG9ja0FkYXB0ZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIApAQCAtMjIzLDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICBQZXJpb2RpY1dhdmUm
IHBlcmlvZGljV2F2ZShPc2NpbGxhdG9yVHlwZSk7CiAKICAgICB2b2lkIGFkZEF1ZGlvUGFyYW1E
ZXNjcmlwdG9ycyhjb25zdCBTdHJpbmcmIHByb2Nlc3Nvck5hbWUsIFZlY3RvcjxBdWRpb1BhcmFt
RGVzY3JpcHRvcj4mJik7Ci0gICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1Bh
cmFtRGVzY3JpcHRvcj4+JiBwYXJhbWV0ZXJEZXNjcmlwdG9yTWFwKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJhbWV0ZXJEZXNjcmlwdG9yTWFwOyB9CisgICAgY29uc3QgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+PiYgcGFyYW1l
dGVyRGVzY3JpcHRvck1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyRGVzY3JpcHRvck1h
cDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVu
dCYpOwpAQCAtMzQ1LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAKICAgICBBdWRpb0lPUG9zaXRpb24g
bV9vdXRwdXRQb3NpdGlvbjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJh
bURlc2NyaXB0b3I+PiBtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXA7CisgICAgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+PiBt
X3BhcmFtZXRlckRlc2NyaXB0b3JNYXA7CiAKICAgICAvLyBUaGVzZSBhcmUgY2FjaGVkIHBlciBh
dWRpbyBjb250ZXh0IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiBUaGV5IGNhbm5vdCBiZQogICAg
IC8vIHN0YXRpYyBiZWNhdXNlIHRoZXkgcmVseSBvbiB0aGUgc2FtcGxlIHJhdGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IDAxOGRi
Yjk5YjE4ZmI2N2I4YjBkYzA5Mzg4Mjc4MTdhYmRiMmM2MjQuLjUzZmJlMzIwNTI0ZWE0YTRmZDRm
MWQzOWYyY2QyNDlkMDU2ODU3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0xODEs
NyArMTgyLDcgQEAgc3RhdGljIEhhc2hNYXA8RGF0YWJhc2VHVUlELCBIYXNoU2V0PERhdGFiYXNl
Kj4+JiBndWlkVG9EYXRhYmFzZU1hcCgpIFdURl9SRVFVSVIKIAogc3RhdGljIGlubGluZSBEYXRh
YmFzZUdVSUQgZ3VpZEZvck9yaWdpbkFuZE5hbWUoY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgbmFtZSkgV1RGX1JFUVVJUkVTX0xPQ0soZ3VpZExvY2spCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZUdVSUQ+PiBtYXA7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aE1hcDxTdHJpbmcsIERhdGFiYXNlR1VJRD4+IG1hcDsKICAgICByZXR1cm4gbWFwLmdldCgpLmVu
c3VyZShtYWtlU3RyaW5nKG9yaWdpbiwgJy8nLCBuYW1lKSwgW10gewogICAgICAgICBzdGF0aWMg
RGF0YWJhc2VHVUlEIGxhc3RVc2VkR1VJRDsKICAgICAgICAgcmV0dXJuICsrbGFzdFVzZWRHVUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRyYWNrZXIuY3BwCmluZGV4IGE0ZjBjNzQ0NTIzNzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIy
OWYuLmI5ZDNjMzkyN2E3NTAwYzE5OGZmNzVhOGI2NmEzYzgxNjIwOGYzMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5j
cHAKQEAgLTk4NCw3ICs5ODQsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVjb3JkRGVsZXRp
bmdEYXRhYmFzZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgYwogICAgIC8vIFdl
IGRvbid0IHVzZSBIYXNoTWFwOjplbnN1cmUgaGVyZSB0byBhdm9pZCBtYWtpbmcgYW4gaXNvbGF0
ZWQgY29weSBvZiB0aGUgb3JpZ2luIGV2ZXJ5IHRpbWUuCiAgICAgYXV0byogbmFtZVNldCA9IG1f
YmVpbmdEZWxldGVkLmdldChvcmlnaW4pOwogICAgIGlmICghbmFtZVNldCkgewotICAgICAgICBh
dXRvIG93bmVkU2V0ID0gbWFrZVVuaXF1ZTxIYXNoU2V0PFN0cmluZz4+KCk7CisgICAgICAgIGF1
dG8gb3duZWRTZXQgPSBtYWtlVW5pcXVlPE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0
cmluZz4+KCk7CiAgICAgICAgIG5hbWVTZXQgPSBvd25lZFNldC5nZXQoKTsKICAgICAgICAgbV9i
ZWluZ0RlbGV0ZWQuYWRkKG9yaWdpbi5pc29sYXRlZENvcHkoKSwgV1RGTW92ZShvd25lZFNldCkp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5oCmluZGV4IDU2ZGMxMzVlMjNhNzAzNmJlM2YwZDhmMjg0ZWExZmJiZjI1
ZDFiMzMuLmY0Mzk1OTgyZDhkZTFhMzc4OTkzZmNmNzA5ZDU1MjA3YzgzZTMxMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
aApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xNzcsNyArMTc3LDcgQEAgcHJpdmF0
ZToKICAgICBEYXRhYmFzZU1hbmFnZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogCiAg
ICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIHN0ZDo6dW5pcXVlX3B0cjxIYXNoQ291bnRl
ZFNldDxTdHJpbmc+Pj4gbV9iZWluZ0NyZWF0ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFi
YXNlR3VhcmQpOwotICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9w
dHI8SGFzaFNldDxTdHJpbmc+Pj4gbV9iZWluZ0RlbGV0ZWQgV1RGX0dVQVJERURfQllfTE9DSyht
X2RhdGFiYXNlR3VhcmQpOworICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OnVu
aXF1ZV9wdHI8TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4+IG1fYmVpbmdE
ZWxldGVkIFdURl9HVUFSREVEX0JZX0xPQ0sobV9kYXRhYmFzZUd1YXJkKTsKICAgICBIYXNoU2V0
PFNlY3VyaXR5T3JpZ2luRGF0YT4gbV9vcmlnaW5zQmVpbmdEZWxldGVkIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9kYXRhYmFzZUd1YXJkKTsKICAgICBib29sIGlzRGVsZXRpbmdEYXRhYmFzZU9yT3Jp
Z2luRm9yKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSkgV1RG
X1JFUVVJUkVTX0xPQ0sobV9kYXRhYmFzZUd1YXJkKTsKICAgICB2b2lkIHJlY29yZENyZWF0aW5n
RGF0YWJhc2UoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lKSBX
VEZfUkVRVUlSRVNfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAppbmRleCBhNGU2OWI1
MWM4NDcwZjQ4OGIxNjJjZTZhYjA4NjE0YWNmYWNkMjAwLi5jMjE0ZGNkMjdlMDkxMTgwOGU5ZTE0
MmI4MTc4ZGQ3YzM2MDI1OWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAt
MTA3LDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1f
YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOwogICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1faXNv
bGF0ZWRXb3JsZDsKICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+LCAxPiBtX2NvbnN0cnVjdGlv
blN0YWNrOwotICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9vYnNlcnZlZEF0dHJpYnV0ZXM7Cisg
ICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9vYnNlcnZlZEF0
dHJpYnV0ZXM7CiAgICAgYm9vbCBtX2lzU2hhZG93RGlzYWJsZWQgOiAxOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBiODc4
NGVhMTc0ZmY3MWZiNTNiODFjMTE4NDYwNGEzYTJlOTI4NzhkLi5lOTJmNDVkOWM1ZThhNGE3YWU1
MzliN2QyMzA4MTRhYTk4ZDQyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03Myw3ICs3
NCw3IEBAIHByaXZhdGU6CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpK
U0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBtX2NvbnRleHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9S
ZXNwb25zZVVSTE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcs
IFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKICAgICBIYXNoU2V0PFJlZjxNb2R1
bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAgICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOwog
ICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIG1fc2hhZG93UmVhbG1HbG9iYWwgeyBudWxscHRyIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKaW5kZXggMDFlYzY0
NDgzZWFhNGQ5MjdlZGE2N2I3NzAzOWJjY2Y3ZTkzMjAxOC4uOTRmYzZlYWY2MTA3YjJkMDFlYWIz
MDIwMmI4N2I1M2M1MjU2YTc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3Rv
bUVsZW1lbnRSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
UmVnaXN0cnkuaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCi0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmlu
Z0hhc2guaD4KIApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGdl
dChjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgdm9pZCB1cGdyYWRlKE5vZGUmIHJvb3QpOwogCi0g
ICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4mIHByb21pc2VNYXAo
KSB7IHJldHVybiBtX3Byb21pc2VNYXA7IH0KKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4mIHByb21pc2VNYXAoKSB7IHJl
dHVybiBtX3Byb21pc2VNYXA7IH0KICAgICBib29sIGlzU2hhZG93RGlzYWJsZWQoY29uc3QgQXRv
bVN0cmluZyYgbmFtZSkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZFNoYWRvd1NldC5jb250YWlu
cyhuYW1lKTsgfQogCiBwcml2YXRlOgpAQCAtNzYsOCArNzYsOCBAQCBwcml2YXRlOgogICAgIERP
TVdpbmRvdyYgbV93aW5kb3c7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8SlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlPj4gbV9uYW1lTWFwOwogICAgIEhhc2hNYXA8Y29uc3QgSlNDOjpKU09i
amVjdCosIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSo+IG1fY29uc3RydWN0b3JNYXA7Ci0gICAg
SGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wcm9taXNlTWFwOwot
ICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9kaXNhYmxlZFNoYWRvd1NldDsKKyAgICBNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4g
bV9wcm9taXNlTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJp
bmc+IG1fZGlzYWJsZWRTaGFkb3dTZXQ7CiAKICAgICBib29sIG1fZWxlbWVudERlZmluaXRpb25J
c1J1bm5pbmcgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXh0
ZW5zaW9uU3R5bGVTaGVldHMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNo
ZWV0cy5oCmluZGV4IGRhOGIwYTk2OGNkOGFiMWQ1NzM0NmQ5ZGI4NmM5OTA3OWM0NDM3ZjQuLmNk
MjQ4NTg5NTdlZWU3MjNlMWZmODkyMzM0OWZhYTBmZjRkNWIzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAi
VXNlclN0eWxlU2hlZXQuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtOTUsOCArOTUsOCBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxVc2VyU3R5bGVTaGVldD4gbV9wYWdlU3BlY2lmaWNTdHls
ZVNoZWV0czsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0ZW5zaW9uU2hlZXRzOwot
ICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRl
bnNpb25TdHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0ZW5zaW9uU2VsZWN0b3JTaGVldHM7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4+IG1fY29udGVudEV4dGVuc2lvblNoZWV0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
blN0eWxlU2hlZXQ+PiBtX2NvbnRlbnRFeHRlbnNpb25TZWxlY3RvclNoZWV0czsKICNlbmRpZgog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IGQ5ODAyZmUy
YmNhY2UxYjA4ZjU3YzM3NjdkMDVkZDM0YTgzOTA2MzMuLmRkNmU0ZWY2ZjgxMTc2ZDYxMWVlNGRk
NDliNDVhNzdmYWM0Y2Q0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC05MCw3ICs5MSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2
ZXI6Om9ic2VydmUoTm9kZSYgbm9kZSwgY29uc3QgSW5pdCYgaW5pdCkKICAgICBpZiAoaW5pdC5j
aGFyYWN0ZXJEYXRhT2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQogICAgICAgICBvcHRpb25zLmFk
ZChPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogCi0gICAgSGFzaFNldDxBdG9t
U3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jp
bkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKICAgICBpZiAoaW5pdC5h
dHRyaWJ1dGVGaWx0ZXIpIHsKICAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluaXQuYXR0cmli
dXRlRmlsdGVyLnZhbHVlKCkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXIuYWRkKHZhbHVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uLmNwcAppbmRleCBkM2MxZmE2NmVkMmY1NTQ3ZjBiODA5YzY5MDdiYjQ1YzRmOWY1NGEzLi5j
OGFmMmU4MTkyZWVhMjM2OTkyMzg2MGMzMzU0N2U5NGI5MWNiOGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zOCw3
ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihNdXRhdGlvbk9ic2VydmVyJiBv
YnNlcnZlciwgTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29u
c3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQorTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihNdXRhdGlvbk9ic2Vy
dmVyJiBvYnNlcnZlciwgTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9u
cywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJp
bmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCiAgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogICAgICwg
bV9ub2RlKG5vZGUpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKQEAgLTUzLDcgKzUzLDcgQEAg
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6fk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24oKQogICAgIG1fb2JzZXJ2ZXItPm9ic2VydmF0aW9uRW5kZWQoKnRoaXMpOwogfQogCi12b2lk
IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmli
dXRlRmlsdGVyKQordm9pZCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpyZXNldE9ic2Vy
dmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBh
Y3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVy
KQogewogICAgIHRha2VUcmFuc2llbnRSZWdpc3RyYXRpb25zKCk7CiAgICAgbV9vcHRpb25zID0g
b3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbi5oCmluZGV4IDc1YmIyN2MzNTE0MDJmNThmNGU3ODQ5NjU2MzBhYmI4ZTI5YjUxYjUu
LjEyNjdmMDEyZTY0N2Y2ZjhkZTlhZGFiYTM1YTg1MTA4ZjlhNzdiY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtMzIsNyAr
MzIsNyBAQAogCiAjaW5jbHVkZSAiR0NSZWFjaGFibGVSZWYuaCIKICNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9i
aW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+
CkBAIC00OCwxMCArNDgsMTAgQEAgY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oTXV0YXRpb25PYnNlcnZlciYsIE5v
ZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYg
YXR0cmlidXRlRmlsdGVyKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKE11dGF0
aW9uT2JzZXJ2ZXImLCBOb2RlJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IE1lbW9y
eUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRl
RmlsdGVyKTsKICAgICB+TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbigpOwogCi0gICAgdm9p
ZCByZXNldE9ic2VydmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNoU2V0
PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOworICAgIHZvaWQgcmVzZXRPYnNlcnZhdGlv
bihNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIHZvaWQg
b2JzZXJ2ZWRTdWJ0cmVlTm9kZVdpbGxEZXRhY2goTm9kZSYpOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlv
bnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lzdHJhdGlv
bk5vZGVzLT5pc0VtcHR5KCk7IH0KQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8Tm9kZT4gbV9ub2RlS2VwdEFsaXZlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdD
UmVhY2hhYmxlUmVmPE5vZGU+Pj4gbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2RlczsKICAgICBN
dXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5n
PiBtX2F0dHJpYnV0ZUZpbHRlcjsKKyAgICBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9v
ZEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9hdHRyaWJ1dGVGaWx0ZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMThmYTkwMDYxNGVhNDZkZDQwN2I4MTE1
NGQ3OTAyZDE2MDUwZmM0Mi4uYzJhNWJkYTgxNjJlZmMwYmFiMWE3MmIxMGE4NjhkMDc3Zjk5OWEz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjMxOSw3ICsyMzE5LDcgQEAgSGFzaE1hcDxSZWY8TXV0
YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBOb2RlOjpyZWdp
c3RlcmVkTXUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIE5vZGU6OnJlZ2lzdGVyTXV0
YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmls
dGVyKQordm9pZCBOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZl
ciYgb2JzZXJ2ZXIsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IE1lbW9y
eUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRl
RmlsdGVyKQogewogICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlv
biA9IG51bGxwdHI7CiAgICAgYXV0byYgcmVnaXN0cnkgPSBlbnN1cmVSYXJlRGF0YSgpLmVuc3Vy
ZU11dGF0aW9uT2JzZXJ2ZXJEYXRhKCkucmVnaXN0cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAwZTRhMDA5
NWE1ZTY5NmQ5MjI3MDNiMTAyMTJmY2Q5MTE4ZDY3MzkyLi5iZGYxNjJlN2MyMWI1YzZkMzQzZmQ3
NjFlMDc1NWJkNmUwMWE2YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9VUkxIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApA
QCAtNTAwLDcgKzUwMSw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2
ZW50VGFyZ2V0RGF0YSgpIGZpbmFsOwogCiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZl
cj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNl
cnZlcnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUpOwotICAgIHZvaWQgcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9u
T2JzZXJ2ZXImLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3Ry
aW5nPiYgYXR0cmlidXRlRmlsdGVyKTsKKyAgICB2b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNlcnZl
cihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IE1lbW9y
eUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRl
RmlsdGVyKTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25P
YnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRMb29wLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudExvb3AuY3BwCmluZGV4IGI5YzFjMTkyY2Zh
NDJhMWZmMWEyZWMzZGI5NWYwMGIxY2VkOWQ0ODAuLmE2MTMyY2IxMzU5MjY4ZmU3NzUzOGIxNjZh
OWI3N2QyYTc2MDgyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVu
dExvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudExvb3AuY3BwCkBA
IC0zNCwxNCArMzQsMTUgQEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5j
bHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIYXNoTWFwPFN0cmluZywgV2luZG93RXZl
bnRMb29wKj4mIHdpbmRvd0V2ZW50TG9vcE1hcCgpCitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBXaW5kb3dFdmVudExvb3AqPiYgd2luZG93RXZlbnRMb29wTWFw
KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBXaW5kb3dFdmVudExvb3AqPj4gbWFwOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJp
bmcsIFdpbmRvd0V2ZW50TG9vcCo+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMGIyOTFmNGI5ZDRjODRkMjc1M2I4OTFlZTE2NTJi
NjdjMDRhZjNmYS4uZjI0ODliMWU0NWRjMGI4YWZlYTlmMzgzMGU3Zjc5YTdjMzFlMzRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRXcml0
ZXJEYXRhLmgiCisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlICJT
Y3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNraW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2
ZW50SW5wdXRUeXBlLmgiCkBAIC02NjcsOCArNjY4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1f
b3ZlcndyaXRlTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9pbnNlcnRlZEF0dGFjaG1lbnRJZGVudGlm
aWVyczsKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9yZW1vdmVkQXR0YWNobWVudElkZW50aWZpZXJz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9pbnNlcnRlZEF0
dGFjaG1lbnRJZGVudGlmaWVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxT
dHJpbmc+IG1fcmVtb3ZlZEF0dGFjaG1lbnRJZGVudGlmaWVyczsKICNlbmRpZgogCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBtX21hcms7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oCmluZGV4IDhhMzFlYTg1OThhNjAy
MzQwY2E0YTE5N2Y3Yjk2NGU4ZGE1MmQzYzAuLmIxODNiYmUzMDk5NDg4YzQ5NzgyNDIwYmZmMzk5
YjMwZmQ0OWYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBdWRpdFJlc291cmNlc09iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTkwLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBJbnNw
ZWN0b3JBdWRpdENhY2hlZFN0eWxlU2hlZXRDbGllbnQgOiBwdWJsaWMgQ2FjaGVkU3R5bGVTaGVl
dENsaWVudCB7IH07CiAgICAgSW5zcGVjdG9yQXVkaXRDYWNoZWRTdHlsZVNoZWV0Q2xpZW50IG1f
Y2FjaGVkU3R5bGVTaGVldENsaWVudDsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNv
dXJjZSo+IG1fcmVzb3VyY2VzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0
cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBtX3Jlc291cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVz
b3VyY2VzRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNl
c0RhdGEuY3BwCmluZGV4IDMyOGViZTdlNjQxMTk1ZTVhNDY4NTAyNzU1OTEwZjc4YzQ4YjU4ZDgu
LjBiNzRkNTZjZjM1NjI2N2EzODY5OWE5ODgwMjYyMjI4NzU0Y2NhYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcApAQCAtMzE5LDkg
KzMxOSwxMCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpjbGVhcihzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gcHJlc2VydmVkTG9hZGVySWQpCiAgICAgaWYgKCFwcmVzZXJ2ZWRMb2FkZXJJZCkK
ICAgICAgICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcC5jbGVhcigpOwogICAgIGVsc2Ug
ewotICAgICAgICBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLnJlbW92ZUlmKFtsb2FkZXJJ
ZCA9ICpwcmVzZXJ2ZWRMb2FkZXJJZF0gKGF1dG8mIGVudHJ5KSB7Ci0gICAgICAgICAgICByZXR1
cm4gZW50cnkudmFsdWUtPmxvYWRlcklkKCkgIT0gbG9hZGVySWQ7Ci0gICAgICAgIH0pOworICAg
ICAgICBhdXRvIGRhdGFUb0tlZXAgPSBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLnRha2Uo
KnByZXNlcnZlZExvYWRlcklkKTsKKyAgICAgICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1h
cC5jbGVhcigpOworICAgICAgICBpZiAoZGF0YVRvS2VlcCkKKyAgICAgICAgICAgIG1fcmVxdWVz
dElkVG9SZXNvdXJjZURhdGFNYXAuYWRkKCpwcmVzZXJ2ZWRMb2FkZXJJZCwgV1RGTW92ZShkYXRh
VG9LZWVwKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3
b3JrUmVzb3VyY2VzRGF0YS5oCmluZGV4IGM4Y2VkMTJhNjQwN2ZkY2Q1NzRlY2MyYTc4MTllZGU2
NjM4MDNkYWMuLmEyNGFiZDg4MzY2MTdiYWFhMjg0Y2UxY2U1ZmQyYzIzMDkxYjdhNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCkBAIC0z
Miw3ICszMiw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xNTcs
NyArMTU3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGVuc3VyZUZyZWVTcGFjZShzaXplX3QpOwog
CiAgICAgRGVxdWU8U3RyaW5nPiBtX3JlcXVlc3RJZHNEZXF1ZTsKLSAgICBIYXNoTWFwPFN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlRGF0YT4+IG1fcmVxdWVzdElkVG9SZXNvdXJjZURh
dGFNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVu
aXF1ZV9wdHI8UmVzb3VyY2VEYXRhPj4gbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcDsKICAg
ICBzaXplX3QgbV9jb250ZW50U2l6ZSB7IDAgfTsKICAgICBzaXplX3QgbV9tYXhpbXVtUmVzb3Vy
Y2VzQ29udGVudFNpemU7CiAgICAgc2l6ZV90IG1fbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVu
dFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50LmgKaW5kZXggNWM2MzEzZTkxNzZmMTk0NDg2YjZjZjg4Yzc4
MTQ3ZGI0YjUxYmNkYy4uYWRhOWY4Njk1YmQ4NDk3N2JjMzg0N2U5NThlNWFjYTI0YjFjYTgwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmlt
YXRpb25BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtOTEsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBQYWdlJiBtX2lu
c3BlY3RlZFBhZ2U7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0aW9uKj4gbV9hbmlt
YXRpb25JZE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdl
YkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1v
dmVkQW5pbWF0aW9uSWRzOwogICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXI7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaAppbmRleCA0YzdjMjM5OTUyNzZmMzkyNWYyYjhmNTczY2RkNjhkZDBiZjU4NWU1
Li45Njg3YjRmNzg3NTM2NjM4OGM4MmRhOTAwNzA2YzA1ZTI2N2M1NWI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5o
CkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJv
bnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTQxLDE3ICsxNDMsMTcgQEAg
cHJpdmF0ZToKICAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXI7CiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwogCi0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3Rv
ckNhbnZhczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxJbnNwZWN0b3JDYW52YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhczsKICAgICBW
ZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVyczsKICAgICBUaW1lciBtX2Nh
bnZhc0Rlc3Ryb3llZFRpbWVyOwogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4+IG1faWRlbnRpZmllclRvSW5zcGVj
dG9yUHJvZ3JhbTsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9n
cmFtOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVyczsKICAg
ICBUaW1lciBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lcjsKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wp
CiAKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9yZWNvcmRpbmdDYW52YXNJZGVudGlmaWVyczsKKyAg
ICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fcmVjb3JkaW5nQ2FudmFz
SWRlbnRpZmllcnM7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gbV9yZWNvcmRpbmdBdXRv
Q2FwdHVyZUZyYW1lQ291bnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAppbmRleCAwZThlMmI2
YWEzOTJmOTAwYjJhZDJmZjZhMjU5ZjE5M2M3ODUzYTNiLi5lMDgzYzhiNGQ5OWQyOTFlYjRiZGQz
ODQwNDk1ZjJkOTE5NjBmMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CkBAIC05OCwxMyArOTksMTMgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9y
OjpET01EZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogICAg
IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdl
cjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV9saXN0ZW5l
ckJyZWFrcG9pbnRzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywg
UmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fbGlzdGVuZXJCcmVha3BvaW50czsKICAgICBSZWZQdHI8
SlNDOjpCcmVha3BvaW50PiBtX3BhdXNlT25BbGxJbnRlcnZhbHNCcmVha3BvaW50OwogICAgIFJl
ZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbExpc3RlbmVyc0JyZWFrcG9pbnQ7CiAg
ICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9wYXVzZU9uQWxsVGltZW91dHNCcmVha3BvaW50
OwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3VybFRleHRC
cmVha3BvaW50czsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1f
dXJsUmVnZXhCcmVha3BvaW50czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxT
dHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3VybFRleHRCcmVha3BvaW50czsKKyAgICBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+
PiBtX3VybFJlZ2V4QnJlYWtwb2ludHM7CiAgICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9w
YXVzZU9uQWxsVVJMc0JyZWFrcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCmluZGV4IDZkZTc0
NmUxN2Q2ZWI3OTZmMTdhNmJjZTMyMmY1Y2EwODA3NjMxNzguLjE2NGVjYmUzMWIzYjA3NWNlZTU0
NDVlMGEyYmRkNTIyMmI2OWY4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzEsNyArNzEsNyBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkRhdGFiYXNlRnJvbnRl
bmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9y
OjpEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogCi0gICAg
SGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlPj4gbV9yZXNv
dXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZT4+IG1fcmVzb3VyY2VzOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKaW5kZXggNzJmNDIzZmY2MTI3N2VlZjRiZDM1NjMy
OGM0NmQzYmQ5MTMxZmY2NS4uYjk1NmNlZTZhMTdhMzdlY2RkN2VjZDM0MmYxMWM2ZGMxNDVjNDAz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3Rvck5ldHdvcmtBZ2VudC5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAu
aD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7
CkBAIC0yMjUsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrUmVzb3VyY2VzRGF0YT4gbV9yZXNvdXJjZXNEYXRhOwogCi0gICAgSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4gbV9leHRyYVJlcXVlc3RIZWFkZXJzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2V4dHJhUmVxdWVzdEhlYWRlcnM7CiAgICAgSGFz
aFNldDxSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+IG1faGlkZGVuUmVxdWVzdElkZW50aWZpZXJz
OwogCiAgICAgc3RydWN0IEludGVyY2VwdCB7CkBAIC0yNDMsOCArMjQ0LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgfQogICAgIH07CiAgICAgVmVjdG9yPEludGVyY2VwdD4gbV9pbnRlcmNlcHRzOwot
ICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0ludGVyY2VwdFJlcXVl
c3Q+PiBtX3BlbmRpbmdJbnRlcmNlcHRSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFN0cmluZywgc3Rk
Ojp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXNwb25zZT4+IG1fcGVuZGluZ0ludGVyY2Vw
dFJlc3BvbnNlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxQZW5kaW5nSW50ZXJjZXB0UmVxdWVzdD4+IG1fcGVuZGluZ0ludGVyY2Vw
dFJlcXVlc3RzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3Rk
Ojp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXNwb25zZT4+IG1fcGVuZGluZ0ludGVyY2Vw
dFJlc3BvbnNlczsKIAogICAgIC8vIEZJWE1FOiBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgc2hvdWxk
IG5vdCBiZSBhd2FyZSBvZiBzdHlsZSByZWNhbGN1bGF0aW9uLgogICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I+IG1fc3R5bGVSZWNhbGN1bGF0aW9uSW5p
dGlhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yUGFnZUFnZW50LmgKaW5kZXggM2Q1ZTU2NmRiZTBjNWVjMTFkOWU4ZGY2N2ZjZjBhNzA5ODhh
MmY4Zi4uNzM0MjRjMmQzYjJhZDk4ODlhNTY2ZmY2MWZkODZhNTBjOTkxNDc5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5o
CkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAt
MTY3LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGSVhNRTogTWFrZSBhIFdlYWtIYXNo
TWFwIGFuZCB1c2UgaXQgZm9yIG1fZnJhbWVUb0lkZW50aWZpZXIgYW5kIG1fbG9hZGVyVG9JZGVu
dGlmaWVyLgogICAgIEhhc2hNYXA8RnJhbWUqLCBTdHJpbmc+IG1fZnJhbWVUb0lkZW50aWZpZXI7
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8RnJhbWU+PiBtX2lkZW50aWZpZXJUb0ZyYW1l
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgV2Vha1B0cjxGcmFt
ZT4+IG1faWRlbnRpZmllclRvRnJhbWU7CiAgICAgSGFzaE1hcDxEb2N1bWVudExvYWRlciosIFN0
cmluZz4gbV9sb2FkZXJUb0lkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50T3ZlcnJp
ZGU7CiAgICAgU3RyaW5nIG1fZW11bGF0ZWRNZWRpYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCBlMWJiZDhm
OTQ2ZTQxZjMwMWE4ZmY4N2Y3NGFmZTM5OWQ2MWZlYzI4Li42MjFhOWYzNTIwNGMzMGU2MGMxMzI1
OTFjN2U1YTM2Mjg1NjgxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5j
bHVkZSAiV29ya2VySW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlz
cGF0Y2hlcjsKIAogICAgIFBhZ2UmIG1fcGFnZTsKLSAgICBIYXNoTWFwPFN0cmluZywgV2Vha1B0
cjxXb3JrZXJJbnNwZWN0b3JQcm94eT4+IG1fY29ubmVjdGVkUHJveGllczsKKyAgICBNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8V29ya2VySW5zcGVjdG9yUHJv
eHk+PiBtX2Nvbm5lY3RlZFByb3hpZXM7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggMzFjZjc4
Y2E1YjE0MzU1MWEzYmE3NTAyM2FmY2E1NDNmY2U0OTQzNC4uMmE1YmYyM2YzODU0OTNjMGJjMjNh
ZjM5MzEyMDZjOTFiZWNhMjQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCkBAIC0yNTE0LDcgKzI1MTQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb250ZW50
RmlsdGVySGFuZGxlUHJvdmlzaW9uYWxMb2FkRmFpbHVyZShjb25zdCBSZXNvdXJjZUVycgogCiB2
b2lkIERvY3VtZW50TG9hZGVyOjpzZXRBY3RpdmVDb250ZW50UnVsZUxpc3RBY3Rpb25QYXR0ZXJu
cyhjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4+JiBwYXR0ZXJucykKIHsKLSAg
ICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4+IHBhcnNlZFBh
dHRlcm5NYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0
b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPj4gcGFyc2VkUGF0dGVybk1hcDsKIAogICAgIGZvciAo
YXV0byYgcGFpciA6IHBhdHRlcm5zKSB7CiAgICAgICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBh
dHRlcm4+IHBhdHRlcm5WZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
CmluZGV4IGM2NDUwZDUwNzJkMGVmZDA0MzBiNmQzZTU0MjBkMmQyYjNlOTQzY2IuLmU5YzhiNjRm
NDkwNTI0YzMyMTYyYjlhMDkwMDA0OWQ3MGVlZGQyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oCkBAIC01NSw2ICs1NSw4IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBFTkFCTEUoQVBQTElD
QVRJT05fTUFOSUZFU1QpCkBAIC02MzMsNyArNjM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBtX3BhcnNlZEFyY2hpdmVEYXRhOwogI2VuZGlmCiAKLSAgICBIYXNoU2V0
PFN0cmluZz4gbV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0OworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0OwogICAg
IFZlY3RvcjxSZXNvdXJjZVJlcXVlc3Q+IG1fcmVzb3VyY2VzTG9hZGVkRnJvbU1lbW9yeUNhY2hl
Rm9yQ2xpZW50Tm90aWZpY2F0aW9uOwogICAgIAogICAgIFN0cmluZyBtX2NsaWVudFJlZGlyZWN0
U291cmNlRm9ySGlzdG9yeTsKQEAgLTY4MCw4ICs2ODIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQ
dHI8U3R5bGVTaGVldENvbnRlbnRzPj4gbV9wZW5kaW5nTmFtZWRDb250ZW50RXh0ZW5zaW9uU3R5
bGVTaGVldHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCB1
aW50MzJfdD4+PiBtX3BlbmRpbmdDb250ZW50RXh0ZW5zaW9uRGlzcGxheU5vbmVTZWxlY3RvcnM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U3R5bGVT
aGVldENvbnRlbnRzPj4gbV9wZW5kaW5nTmFtZWRDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldHM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8c3RkOjpw
YWlyPFN0cmluZywgdWludDMyX3Q+Pj4gbV9wZW5kaW5nQ29udGVudEV4dGVuc2lvbkRpc3BsYXlO
b25lU2VsZWN0b3JzOwogI2VuZGlmCiAgICAgU3RyaW5nIG1fY3VzdG9tVXNlckFnZW50OwogICAg
IFN0cmluZyBtX2N1c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzOwpAQCAtNjg5LDcg
KzY5MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lkZW1wb3RlbnRNb2RlQXV0b3NpemluZ09u
bHlIb25vcnNQZXJjZW50YWdlcyB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fY3VzdG9tTmF2aWdh
dG9yUGxhdGZvcm07CiAgICAgYm9vbCBtX3VzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQgeyB0
cnVlIH07Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+
PiBtX2FjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvblBhdHRlcm5zOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4+
IG1fYWN0aXZlQ29udGVudFJ1bGVMaXN0QWN0aW9uUGF0dGVybnM7CiAjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKICAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSB7IERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdCB9OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4
IDNmYWQ5YTQ5MzA3MjVmODZiNTJmNzEzNWIyYmE2OWI5YTU1NDQ5ZjIuLjMwZjY2MWNjNWY5YTcy
NTYyNjU3YjU1MWMwNjA5NjZmMTI0MDUyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RI
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIwMCw4ICsy
MDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuUmVxdWVzdEFmdGVyUmVkaXJlY3Rpb24oQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFVSTCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYsIGNvbnN0IFVSTCYgcHJlUmVkaXJlY3RVUkwpIGNvbnN0OwogICAgIGJvb2wgY2FuUmVxdWVz
dEluQ29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNhbmRib3goQ2FjaGVkUmVzb3VyY2U6OlR5
cGUsIGNvbnN0IFVSTCYpIGNvbnN0OwogCi0gICAgSGFzaFNldDxVUkw+IG1fdmFsaWRhdGVkVVJM
czsKLSAgICBIYXNoU2V0PFVSTD4gbV9jYWNoZWRTVkdJbWFnZXNVUkxzOworICAgIE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFVSTD4gbV92YWxpZGF0ZWRVUkxzOworICAgIE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFVSTD4gbV9jYWNoZWRTVkdJbWFnZXNVUkxzOwogICAgIG11
dGFibGUgRG9jdW1lbnRSZXNvdXJjZU1hcCBtX2RvY3VtZW50UmVzb3VyY2VzOwogICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgRG9jdW1lbnRMb2FkZXIqIG1fZG9jdW1lbnRM
b2FkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDU2MzMzMDBhZDNmMTFlMWJmNWQzYmUxZjUyZjU2NDlj
ZDAxMjJjZDEuLjA1OGE5MWQ4ZTE2MDc2MjhkMzE3MjI4MDFkNjUzNWQ2MDc5ZjExNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQu
aD4KQEAgLTExNjQsOCArMTE2NSw4IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1faWRiQ29ubmVjdGlvblRvU2VydmVyOwogCi0gICAg
SGFzaFNldDxTdHJpbmc+IG1fc2VlblBsdWdpbnM7Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vl
bk1lZGlhRW5naW5lczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+
IG1fc2VlblBsdWdpbnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5n
PiBtX3NlZW5NZWRpYUVuZ2luZXM7CiAKICAgICB1bnNpZ25lZCBtX2xhc3RTcGF0aWFsTmF2aWdh
dGlvbkNhbmRpZGF0ZXNDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2ZvcmJpZFByb21wdHNE
ZXB0aCB7IDAgfTsKQEAgLTEyODcsNyArMTI4OCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8
VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBWZWN0
b3I8VXNlclN0eWxlU2hlZXQ+IG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVjdGlvbjsKLSAg
ICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nPj4gbV9hbGxvd2VkTmV0d29ya0hvc3RzOwor
ICAgIHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0
PFN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBib29sIG1faXNUYWtpbmdTbmFw
c2hvdHNGb3JBcHBsaWNhdGlvblN1c3BlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9sb2Fk
c1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIG1fY2FuVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXgg
ZWQ5MjA1MzQwM2Q1ZWUzYjJkNzNkNmNkZmMwMWMwMDRkYmRmNmI2OC4uY2Q1YWNlY2UyNzk1ZDlk
YzRiMDc2NmQyYzZkNDEyY2M1ZjIzMmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBU
aGVzZSBzaG91bGQgYmUgYWxsIGJlIFNldHRpbmdzLgogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJj
ZXMgeyB0cnVlIH07Ci0gICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWRO
ZXR3b3JrSG9zdHM7CisgICAgc3RkOjpvcHRpb25hbDxNZW1vcnlDb21wYWN0TG9va3VwT25seVJv
YmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBib29sIHVz
ZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsgdHJ1ZSB9OwogICAgIFNob3Vs
ZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiAg
ICAgYm9vbCBodHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxp
c3REaXJlY3RpdmUuaAppbmRleCBkOTkxNDgxZmFjOTVkYjVmODU0MTQwMWYwYjcwMTQwN2IyMDIx
OTNiLi43Y2JmZmZlNjYzNWM5Mjk4Y2I5NjEyOWI1MjgwOTUzMWVlZThhYzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3RE
aXJlY3RpdmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3lNZWRpYUxpc3REaXJlY3RpdmUuaApAQCAtMjcsNyArMjcsNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmUuaCIKLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQz
LDcgKzQzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmlu
ZyYpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1fcGx1Z2luVHlwZXM7CisgICAgTWVtb3J5Q29t
cGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9wbHVnaW5UeXBlczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaAppbmRleCBjYjZhNTg4
MGI4MDg1YzA2MmUyYzkwZTViNDU5ZTMzODEzMjc2NGQzLi4wOTkzMzkwNGRlNzc4YjI5YjE1MTVi
NmM3YzhmOWY4NWU4YmNkZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oCkBAIC0yOSw4ICsyOSw4IEBA
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ29udGVudFNl
Y3VyaXR5UG9saWN5SGFzaC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJj
ZS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04OSw3
ICs4OSw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3kmIG1f
cG9saWN5OwogICAgIFZlY3RvcjxDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2U+IG1fbGlzdDsK
LSAgICBIYXNoU2V0PFN0cmluZz4gbV9ub25jZXM7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9u
bHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9ub25jZXM7CiAgICAgSGFzaFNldDxDb250ZW50
U2VjdXJpdHlQb2xpY3lIYXNoPiBtX2hhc2hlczsKICAgICBPcHRpb25TZXQ8Q29udGVudFNlY3Vy
aXR5UG9saWN5SGFzaEFsZ29yaXRobT4gbV9oYXNoQWxnb3JpdGhtc1VzZWQ7CiAgICAgU3RyaW5n
IG1fZGlyZWN0aXZlTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xl
Z2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNj
aGVtZVJlZ2lzdHJ5LmNwcAppbmRleCA0M2MwM2JlZTg0MTczYTAyMmUxODQ2MWQ4MGI4ODVjMWJm
OTAyOGRmLi4yNTcyYjdhZjAzNjM5NzU5MDA0NjFjNWQwMGI2YzFhODA5YjQ0NmQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQpAQCAtMjM1LDEwICsyMzYsMTAgQEAgdm9pZCBMZWdhY3lT
Y2hlbWVSZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzTG9jYWwoY29uc3QgU3Ry
aW5nJiBzY2hlbWUKICAgICBsb2NhbFVSTFNjaGVtZXMoKS5yZW1vdmUoc2NoZW1lKTsKIH0KIAot
c3RhdGljIEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1lc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoKSBX
VEZfUkVRVUlSRVNfTE9DSyhzY2hlbWVSZWdpc3RyeUxvY2spCitzdGF0aWMgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1lc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIo
KSBXVEZfUkVRVUlSRVNfTE9DSyhzY2hlbWVSZWdpc3RyeUxvY2spCiB7CiAgICAgQVNTRVJUKHNj
aGVtZVJlZ2lzdHJ5TG9jay5pc0hlbGQoKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hTZXQ8U3RyaW5nPj4gc2V0OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+PiBzZXQ7CiAgICAgcmV0dXJuIHNldC5nZXQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2Fy
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCmluZGV4IGMw
OWI2ZGUzMWYyZWRlYmUwMTg4ZGM5YzQ2NmEyNzFlMWI4YjllMTQuLjQyNGM3MWM0YmUyY2U4MTUz
OGE5MmU3ZjVmYWVhMTdlOWMwNWMxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1N0YXRpY1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdGF0
aWNQYXN0ZWJvYXJkLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiUGFzdGVib2FyZC5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBtX2N1c3RvbURhdGE7Ci0gICAgSGFzaFNl
dDxTdHJpbmc+IG1fbm9uRGVmYXVsdERhdGFUeXBlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaFNldDxTdHJpbmc+IG1fbm9uRGVmYXVsdERhdGFUeXBlczsKICAgICBQYXN0ZWJvYXJk
OjpGaWxlQ29udGVudFN0YXRlIG1fZmlsZUNvbnRlbnRTdGF0ZSB7IFBhc3RlYm9hcmQ6OkZpbGVD
b250ZW50U3RhdGU6Ok5vRmlsZU9ySW1hZ2VEYXRhIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXgg
MjYzOWYxYmQ5ZDlkNGIzYWY4MmJkMDYwOTdhYWFjYzI1NjFjODU4My4uNzhiZjNjMzFmN2U0YThh
ZmM5ZGU0NjhjZjVjYmQ4NzA4MGJkNDQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJp
bmdIYXNoLmg+CiAKQEAgLTE5MCw3ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNB
dWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKIAotICAgIEhh
c2hNYXA8QXRvbVN0cmluZywgVW5pcXVlUmVmPFRyYWNrQnVmZmVyPj4gbV90cmFja0J1ZmZlck1h
cDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBVbmlxdWVS
ZWY8VHJhY2tCdWZmZXI+PiBtX3RyYWNrQnVmZmVyTWFwOwogCiAgICAgU291cmNlQnVmZmVyQXBw
ZW5kTW9kZSBtX2FwcGVuZE1vZGUgeyBTb3VyY2VCdWZmZXJBcHBlbmRNb2RlOjpTZWdtZW50cyB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBiZTFiNmM0YTRlYjE3NjRlNGU1ZDM2MWZiOWJmOTI2
M2YyM2VlNzY2Li4yMTVkMDUwNjhmYTg2ZGEwYjg5NTA2M2M5NzViZWFlZGU2ZTZhMzBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtMjA2LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRiogbV9jdXJyZW50VGV4dFRyYWNrOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVS
X0RFTEVHQVRFKQotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmV0YWluUHRyPEFWQ0ZBc3Nl
dFJlc291cmNlTG9hZGluZ1JlcXVlc3RSZWY+Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmV0YWluUHRyPEFW
Q0ZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3RSZWY+Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7
CiAgICAgQVZDRkFzc2V0UmVzb3VyY2VMb2FkZXJDYWxsYmFja3MgbV9yZXNvdXJjZUxvYWRlckNh
bGxiYWNrczsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA5OWVkN2UxNGU1
ODgzOGVhNTk2NWExODAyZmJkYzZiNTBjZjA3MGZjLi4wY2M5ZDNlMDUxZDNkODljOTFlNTZhYTZl
YjIyN2QxYjRlYTkzYThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMCw4ICszMCw4IEBA
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgiCiAjaW5jbHVkZSA8
Q29yZU1lZGlhL0NNVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hNYXAuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0SW1hZ2VHZW5lcmF0b3I7
CiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKQEAgLTM4Nyw4ICszODcsOCBAQCBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CiAgICAgSGFzaE1hcDxS
ZXRhaW5QdHI8Q0ZUeXBlUmVmPiwgUmVmUHRyPFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcj4+IG1f
cmVzb3VyY2VMb2FkZXJNYXA7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0
ZT4gbV9sb2FkZXJEZWxlZ2F0ZTsKLSAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPEFWQXNz
ZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7Ci0gICAgSGFz
aE1hcDxTdHJpbmcsIFJldGFpblB0cjxBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdD4+IG1f
c2Vzc2lvbklEVG9SZXF1ZXN0TWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PFN0cmluZywgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9rZXlV
UklUb1JlcXVlc3RNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5n
LCBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+PiBtX3Nlc3Npb25JRFRv
UmVxdWVzdE1hcDsKIAogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0PiBt
X2xlZ2libGVPdXRwdXQ7CiAKQEAgLTQwMyw3ICs0MDMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY+IG1fbWV0YWRhdGFUcmFjazsKICNl
bmRpZgogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbmJhbmRDaGFwdGVyVHJhY2tQcml2
YXRlQVZGT2JqQz4+IG1fY2hhcHRlclRyYWNrczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbmJhbmRDaGFwdGVyVHJhY2tQcml2YXRlQVZGT2JqQz4+
IG1fY2hhcHRlclRyYWNrczsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
ICYmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1
dENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IGM0YTMxYmU1NWM1M2U5NGRk
Y2Y1MTQ4ZTVkM2E1Y2FlODkzMzI1ZGYuLjlmNWUyMjAzMDk5MDAyYjNmZWQ4YmMwZmYzMzU0YWUx
NTA3OGI0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgog
CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwogT0JKQ19DTEFTUyBXZWJS
b290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI7CkBAIC0yNDMsOCArMjQ0LDggQEAg
cHJpdmF0ZToKICAgICB9OwogICAgIEN1cnJlbnRGcmFtZVBhaW50ZXIgbV9pbWFnZVBhaW50ZXI7
CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+
PiBtX2F1ZGlvVHJhY2tNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxWaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtPj4gbV92aWRlb1RyYWNrTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBt
X2F1ZGlvVHJhY2tNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5n
LCBSZWY8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbT4+IG1fdmlkZW9UcmFja01hcDsKIAog
ICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGUgeyBNZWRpYVBsYXll
cjo6TmV0d29ya1N0YXRlOjpFbXB0eSB9OwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1f
cmVhZHlTdGF0ZSB7IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDI2NjdjYWY2OTkyMTAwNTEyMmFlYmY1ZTAzMTIw
ZjZmOWZiYjhkYTcuLjdlZjRhOTliMDQxYWY1YTQwNmZhMmExNmM1ZDJhNzhlMjdkYTQ1MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTgyOSw3ICs4MjksNyBAQCBlbnVtIGNsYXNz
IFRyYWNrS2luZCB7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVD4KLXZvaWQgdXBkYXRl
VHJhY2tzT2ZLaW5kKEhhc2hNYXA8U3RyaW5nLCBSZWZUPiYgdHJhY2tNYXAsIFRyYWNrS2luZCB0
cmFja0tpbmQsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiBjdXJyZW50VHJhY2tzLCBS
ZWZUICgqaXRlbUZhY3RvcnkpKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiksIGNvbnN0IEZ1bmN0
aW9uPHZvaWQoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2lu
dGVyPHR5cGVuYW1lIFJlZlQ6OlB0clRyYWl0czo6U3RvcmFnZVR5cGU+Ojp0eXBlPiwgaW50LCBU
cmFja1N0YXRlKT4mIGNvbmZpZ3VyZVRyYWNrKQordm9pZCB1cGRhdGVUcmFja3NPZktpbmQoTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZUPiYgdHJhY2tNYXAsIFRyYWNr
S2luZCB0cmFja0tpbmQsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiBjdXJyZW50VHJh
Y2tzLCBSZWZUICgqaXRlbUZhY3RvcnkpKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiksIGNvbnN0
IEZ1bmN0aW9uPHZvaWQoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjx0eXBlbmFtZSBzdGQ6OnJlbW92
ZV9wb2ludGVyPHR5cGVuYW1lIFJlZlQ6OlB0clRyYWl0czo6U3RvcmFnZVR5cGU+Ojp0eXBlPiwg
aW50LCBUcmFja1N0YXRlKT4mIGNvbmZpZ3VyZVRyYWNrKQogewogICAgIFZlY3RvcjxSZWZUPiBy
ZW1vdmVkVHJhY2tzOwogICAgIFZlY3RvcjxSZWZUPiBhZGRlZFRyYWNrczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAppbmRleCBh
Y2FiYTMxNGRkY2EwNTUzZDIwNzY2OGRjOGYxNWQ0NTZiNmRlNWU1Li5kOWU0ZWUwNGIwZmEyZjZm
NDY4YmMwMmI3ODE5MjJjMjYxYmVjOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVnaXN0cnkuY3BwCkBAIC04MCw5ICs4MCw5IEBAIGNvbnN0
IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBkZWZhdWx0
U3VwcG9ydGVkSW1hZ2VUeXBlCiAgICAgcmV0dXJuIGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGVz
OwogfQogCi1IYXNoU2V0PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkK
K01lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJp
bmc+PiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4gYWRkaXRpb25hbFN1
cHBvcnRlZEltYWdlVHlwZXM7CiAgICAgcmV0dXJuIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9VVElSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJ
UmVnaXN0cnkuaAppbmRleCAxNGFiMjJiNGNjMjhlNzUxZGE1YTI4MzZjNzczYjdmNGUzYzkxNzc2
Li4wNTZhOWQ3ZTI5Njk1Yzc2M2YxMGEzMGI1MzJlZjJmYWE5YWQ0N2VmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmgKQEAgLTMxLDcg
KzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1
cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGVz
KCk7Ci1IYXNoU2V0PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCk7CitN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBhZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcygpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7
CiBXRUJDT1JFX0VYUE9SVCBib29sIGlzU3VwcG9ydGVkSW1hZ2VUeXBlKGNvbnN0IFN0cmluZyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDlmOTBlYWEzODUzN2FkMDY4OGQ4NDNiM2Q4
ZDgwYmIyMmU3ODM2ODguLjI2NDFkZWUzOTZmOTllMmJmNDUzNTczMmNiOWFjZjgzYjllNTAyYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2luY2x1ZGUgPHd0
Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCkBAIC05OTQsOCArOTk1
LDggQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBMb2NrIG1fZmFtaWx5TmFtZVRvRm9udERlc2Ny
aXB0b3JzTG9jazsKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEluc3RhbGxl
ZEZvbnRGYW1pbHk+PiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9ycyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzTG9jayk7Ci0gICAgSGFzaE1hcDxT
dHJpbmcsIEluc3RhbGxlZEZvbnQ+IG1fcG9zdFNjcmlwdE5hbWVUb0ZvbnREZXNjcmlwdG9yczsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxJbnN0YWxsZWRGb250RmFtaWx5Pj4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMgV1RG
X0dVQVJERURfQllfTE9DSyhtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2spOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgSW5zdGFsbGVkRm9udD4gbV9w
b3N0U2NyaXB0TmFtZVRvRm9udERlc2NyaXB0b3JzOwogICAgIEFsbG93VXNlckluc3RhbGxlZEZv
bnRzIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250
RGF0YWJhc2VDb3JlVGV4dC5jcHAKaW5kZXggNTc2MmUwODkzZDk5M2I0MzliOTA1ODkyYjE2MjU2
NzYwOWI1YmQ1Yi4uMTEwMjI0M2NlZTYyMWMwMWRhMmE1NWRhYjMzODk4YWUyZjk0MDk0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9u
dERhdGFiYXNlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcApAQCAtMjg5LDcgKzI4OSw3
IEBAIFZlY3RvcjxSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4+IFN5c3RlbUZvbnREYXRh
YmFzZUNvcmVUZXh0OjpjYXNjYWRlTGlzdChjCiAgICAgcmV0dXJuIGNhc2NhZGVMaXN0KHN5c3Rl
bUZvbnRQYXJhbWV0ZXJzKGRlc2NyaXB0aW9uLCBjc3NGYW1pbHksIHN5c3RlbUZvbnRLaW5kLCBh
bGxvd1VzZXJJbnN0YWxsZWRGb250cyksIHN5c3RlbUZvbnRLaW5kKTsKIH0KIAotc3RhdGljIFN0
cmluZyBnZW5lcmljRmFtaWx5KGNvbnN0IFN0cmluZyYgbG9jYWxlLCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYgbWFwLCBDRlN0cmluZ1JlZiBjdEtleSkKK3N0YXRpYyBTdHJpbmcgZ2VuZXJpY0Zh
bWlseShjb25zdCBTdHJpbmcmIGxvY2FsZSwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+JiBtYXAsIENGU3RyaW5nUmVmIGN0S2V5KQogewogICAgIHJldHVybiBt
YXAuZW5zdXJlKGxvY2FsZSwgWyZdIHsKICAgICAgICAgYXV0byBkZXNjcmlwdG9yID0gYWRvcHRD
RihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlRm9yQ1NTRmFtaWx5KGN0S2V5LCBsb2NhbGUuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgK
aW5kZXggNWQzMzVmYzI0ZTc1MzE5ZDVhODAzM2Q1NDI5Y2ExMjdkNjE5ZGFmMi4uYzNiNTcxZGI5
ZTI1MzY2NTk5NWI4YzY5ZjVlODE4YTU2ODQ3MTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0
YWJhc2VDb3JlVGV4dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9D
b3JlVGV4dFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFz
aC5oPgogCkBAIC0xMTMsMTEgKzExNCwxMSBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxDYXNj
YWRlTGlzdFBhcmFtZXRlcnMsIFZlY3RvcjxSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4+
LCBDYXNjYWRlTGlzdFBhcmFtZXRlcnM6Okhhc2gsIFNpbXBsZUNsYXNzSGFzaFRyYWl0czxDYXNj
YWRlTGlzdFBhcmFtZXRlcnM+PiBtX3N5c3RlbUZvbnRDYWNoZTsKIAotICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IG1fc2VyaWZGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiBtX3NhbnNTZXJpZmVyaWZGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBt
X2N1cnNpdmVGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2ZhbnRhc3lG
YW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX21vbm9zcGFjZUZhbWlsaWVz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3Nl
cmlmRmFtaWxpZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IG1fc2Fuc1NlcmlmZXJpZkZhbWlsaWVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2N1cnNpdmVGYW1pbGllczsKKyAgICBNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9mYW50YXN5RmFtaWxpZXM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fbW9u
b3NwYWNlRmFtaWxpZXM7CiB9OwogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNv
bnN0IFN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0OjpDYXNjYWRlTGlzdFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFk
Q2hlY2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KaW5k
ZXggMDU4YjdlOWNmMTA1M2RlYTA1MGE4MjFmOTk4OWNjYzljZjk4Y2JmZS4uMDE4N2Y1YTMxZTgy
NDY1ZWM5N2I1ZjYxYTAzYTJlNmI0ZjU1ZGE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaHJlYWRDaGVjay5tbQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgUExBVEZPUk0oTUFD
KQogCi0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW1wb3J0IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xMDEsNyAr
MTAxLDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGZ1
bmN0aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICBpZiAocm91bmQgPj0gTWF4aW11
bVRocmVhZFZpb2xhdGlvblJvdW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBsb2dnZWRGdW5jdGlvbnM7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IGxv
Z2dlZEZ1bmN0aW9uczsKICAgICBzd2l0Y2ggKHRocmVhZFZpb2xhdGlvbkJlaGF2aW9yW3JvdW5k
XSkgewogICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmgKaW5kZXggN2YyZWI0NWVmMTE4NmUwZjc1MWU3MzExMDg1OWZjMTEyYWQ2NjBk
Mi4uN2RmYTcxZTMyYmUyYzQ5YmJlZGNjNzQ0M2IwZTQ3MDcxMzg5YjVhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgot
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrSGFzaFNldC5oPgpAQCAtMTMzLDcgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgV2Vh
a0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogICAgIFN0cmluZyBtX2lkOwogICAgIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2FjdGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJh
Y2tTZXQ7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrU2V0OwogICAgIGJvb2wgbV9pc0FjdGl2
ZSB7IGZhbHNlIH07CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUmVmPGNvbnN0IExv
Z2dlcj4gbV9sb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlZ2lzdHJ5SW1wbC5oCmluZGV4IGVlYmQ4NmMzMjJjZjc1NTNjNWE0ZjMyNzZhZTg3ZGI4
MjNiZDQ5ZTYuLjJhMWIyM2VkMWNkODc5Yjk0YmFlOGI3YzQ1MDBiNzY0ZGMxMTVmMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5o
CkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNpbmNsdWRlICJCbG9i
UmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRCbG9iRGF0YShjb25zdCBTdHJpbmcmIHVybCwgUmVmUHRyPEJsb2JEYXRhPiYm
KTsKIAogICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gbV9ibG9iUmVmZXJlbmNlczsKLSAgICBI
YXNoTWFwPFN0cmluZywgUmVmUHRyPEJsb2JEYXRhPj4gbV9ibG9iczsKKyAgICBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxCbG9iRGF0YT4+IG1fYmxvYnM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmgKaW5kZXggZDBlMTZmN2JiNTI1OTNjNzk5
MmZhYzlkZDJjZmI5NTc5Zjg1OGQzYi4uNDBlOWEwMWYwMDFkMDk0ZTY4NWIwM2NiNzRjZDA0Yzdl
NzY1Y2ZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVk
ZW50aWFsU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3Jl
ZGVudGlhbFN0b3JhZ2UuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlByb3RlY3Rpb25T
cGFjZUhhc2guaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Jv
YmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIEhhc2hNYXA8c3RkOjpwYWlyPFN0cmluZyAvKiBwYXJ0aXRpb25OYW1l
ICovLCBQcm90ZWN0aW9uU3BhY2U+LCBDcmVkZW50aWFsPiBtX3Byb3RlY3Rpb25TcGFjZVRvQ3Jl
ZGVudGlhbE1hcDsKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9vcmlnaW5zV2l0aENyZWRlbnRpYWxz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9vcmlnaW5zV2l0
aENyZWRlbnRpYWxzOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvdGVjdGlvblNw
YWNlPiBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOwogICAgIFBhdGhUb0RlZmF1bHRQ
cm90ZWN0aW9uU3BhY2VNYXAgbV9wYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmgKaW5kZXggMzMwOTk0NWJkNDlhNjkwYTY1ZjczZWMzZWQzZDdiMjQ1YWMwMjcyZC4u
ZGVjYTE3NjUyM2I4ODM4ZmQ5ZDBjZjM2NWFhNDljMjRiZTAyZGRlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI2Niw3ICsyNjYsNyBAQCBwcml2YXRlOgog
I2lmIEhBVkUoQ09PS0lFX0NIQU5HRV9MSVNURU5FUl9BUEkpCiAgICAgYm9vbCBtX2RpZFJlZ2lz
dGVyQ29va2llTGlzdGVuZXJzIHsgZmFsc2UgfTsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU2V0
PiBtX3N1YnNjcmliZWREb21haW5zRm9yQ29va2llQ2hhbmdlczsKLSAgICBIYXNoTWFwPFN0cmlu
ZywgSGFzaFNldDxDb29raWVDaGFuZ2VPYnNlcnZlcio+PiBtX2Nvb2tpZUNoYW5nZU9ic2VydmVy
czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIEhhc2hTZXQ8Q29v
a2llQ2hhbmdlT2JzZXJ2ZXIqPj4gbV9jb29raWVDaGFuZ2VPYnNlcnZlcnM7CiAjZW5kaWYKIAog
ICAgIENyZWRlbnRpYWxTdG9yYWdlIG1fY3JlZGVudGlhbFN0b3JhZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJlbmNlZFNWR1Jlc291cmNlcy5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlZmVyZW5jZWRTVkdSZXNvdXJjZXMuaAppbmRleCAwNzdiYmJh
ODhiYTc4NGI5YTlkMmExYWRhMGUyNGNkYTE0NGFjNjc5Li44MTZkN2Q3YWM2MzI3NTg2NzBiNjNk
OWFlZTZhMjZhNzIzMzMzNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVmZXJlbmNlZFNWR1Jlc291cmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZWZlcmVuY2VkU1ZHUmVzb3VyY2VzLmgKQEAgLTI2LDggKzI2LDggQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZW1vdmVDbGllbnRGb3JUYXJnZXQoRG9jdW1lbnQmLCBjb25zdCBBdG9tU3RyaW5nJik7CiAK
ICAgICBSZW5kZXJFbGVtZW50JiBtX3JlbmRlcmVyOwotICAgIEhhc2hNYXA8QXRvbVN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPENTU1NWR1Jlc291cmNlRWxlbWVudENsaWVudD4+IG1fZWxlbWVudENs
aWVudHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8QXRvbVN0cmluZywgc3Rk
Ojp1bmlxdWVfcHRyPENTU1NWR1Jlc291cmNlRWxlbWVudENsaWVudD4+IG1fZWxlbWVudENsaWVu
dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RG9jdW1lbnRFeHRlbnNpb25zLmgKaW5kZXggOWJiZDc3YmJjYzUzYjU4ZjhkOTA1MTZjZGJjMTM5
YTNiZGQxZmVkZS4uY2ZhNjJlZTM3NTBjZDMwZTZiZDU3OGY1ZDJiMDU1N2ViNTk2NzFiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaApAQCAtMjMsNiArMjMs
NyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRv
bVN0cmluZ0hhc2guaD4KIApAQCAtNzYsOSArNzcsOSBAQCBwcml2YXRlOgogICAgIERvY3VtZW50
JiBtX2RvY3VtZW50OwogICAgIFdlYWtIYXNoU2V0PFNWR1NWR0VsZW1lbnQ+IG1fdGltZUNvbnRh
aW5lcnM7IC8vIEZvciBTVkcgMS4yIHN1cHBvcnQgdGhpcyB3aWxsIG5lZWQgdG8gYmUgbWFkZSBt
b3JlIGdlbmVyYWwuCiAgICAgV2Vha0hhc2hTZXQ8U1ZHRm9udEZhY2VFbGVtZW50PiBtX3N2Z0Zv
bnRGYWNlRWxlbWVudHM7Ci0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lcio+IG1fcmVzb3VyY2VzOwotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgV2Vha0hh
c2hTZXQ8RWxlbWVudD4+IG1fcGVuZGluZ1Jlc291cmNlczsgLy8gUmVzb3VyY2VzIHRoYXQgYXJl
IHBlbmRpbmcuCi0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBXZWFrSGFzaFNldDxFbGVtZW50Pj4g
bV9wZW5kaW5nUmVzb3VyY2VzRm9yUmVtb3ZhbDsgLy8gUmVzb3VyY2VzIHRoYXQgYXJlIHBlbmRp
bmcgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbC4KKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxBdG9tU3RyaW5nLCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcio+IG1fcmVzb3Vy
Y2VzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtI
YXNoU2V0PEVsZW1lbnQ+PiBtX3BlbmRpbmdSZXNvdXJjZXM7IC8vIFJlc291cmNlcyB0aGF0IGFy
ZSBwZW5kaW5nLgorICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcs
IFdlYWtIYXNoU2V0PEVsZW1lbnQ+PiBtX3BlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFsOyAvLyBS
ZXNvdXJjZXMgdGhhdCBhcmUgcGVuZGluZyBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsLgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxTVkdSZXNvdXJjZXNDYWNoZT4gbV9yZXNvdXJjZXNDYWNoZTsKIAog
ICAgIFZlY3RvcjxSZWY8U1ZHRWxlbWVudD4+IG1fcmVidWlsZEVsZW1lbnRzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmgKaW5kZXggY2MyYmI4YWE1OTNmMjRhNjdiZDIwNWQ3MTk0MmIwNTdlMjhjOTZh
MC4uNTNlZGRmM2FmN2EyMTNjZjI5ZjU0M2I1MmE3NWM2YjdiMzZiZDVkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5oCkBAIC0xMTUsOSArMTE1LDYgQEAgcHJpdmF0ZToKICAgICBKU0M6OlJ1bnRp
bWVGbGFncyBtX3J1bnRpbWVGbGFnczsKICAgICBEZXF1ZTxSZWZQdHI8RXZlbnQ+PiBtX3BlbmRp
bmdFdmVudHM7CiAgICAgYm9vbCBtX3dhc1Rlcm1pbmF0ZWQgeyBmYWxzZSB9OwotI2lmIEVOQUJM
RShXRUJfUlRDKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3RyYW5zZm9ybWVyczsKLSNlbmRpZgog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBl
ZDc4OTNjYmM4MjJhNzgzNWY4MDRkNTkyYTZiNDdhZDRmOGU3OWQyLi4yMDVjNWM0ZjZjYjFmMDIz
YzAwMGFkODFiY2VmZmM5NzcxY2VjYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zp
eGVkVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRl
IDx3dGYvV2Vha0hhc2hTZXQuaD4KQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRlOgogICAgIG11
dGFibGUgUmVmUHRyPENyeXB0bz4gbV9jcnlwdG87CiAKICAgICBXZWFrUHRyPFNjcmlwdEJ1ZmZl
clNvdXJjZVByb3ZpZGVyPiBtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlcjsKLSAgICBIYXNoTWFw
PFVSTCwgV2Vha0hhc2hTZXQ8U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI+PiBtX2ltcG9ydGVk
U2NyaXB0c1NvdXJjZVByb3ZpZGVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxVUkwsIFdlYWtIYXNoU2V0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyPj4gbV9pbXBvcnRl
ZFNjcmlwdHNTb3VyY2VQcm92aWRlcnM7CiAKICAgICBSZWZQdHI8V29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaAppbmRleCA5YTY2ZDQ4YjBhMjlkOWYyOTNhMzJiZmZl
ODRhNTdjMGQ3NzcyN2E0Li5iYjE1MGRmZDg3NjQ3NzBjNjFiMjZiMjBkYjkwNjJjZDZkMzk1YWIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRleHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCi0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9VUkxIYXNoLmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCkBAIC05NSw3ICs5NSw3
IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewogICAgIFdvcmtlclR5cGUgd29y
a2VyVHlwZTsKICAgICBib29sIGxvYWRlZEZyb21EaXNrOwogICAgIHN0ZDo6b3B0aW9uYWw8TGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ+IGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
OwotICAgIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2NyaXB0UmVzb3VyY2VNYXA7Cisg
ICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2Ny
aXB0UmVzb3VyY2VNYXA7CiAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwogICAgIE5hdmlnYXRpb25Q
cmVsb2FkU3RhdGUgbmF2aWdhdGlvblByZWxvYWRTdGF0ZTsKIApAQCAtMTY0LDcgKzE2NCw3IEBA
IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYXN0TmF2
aWdhdGlvbldhc0FwcEluaXRpYXRlZCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
LSAgICBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlw
dFJlc291cmNlTWFwOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2NyaXB0UmVzb3VyY2VNYXAp
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwCmluZGV4IGYxNDhhM2RhZWIxYzc1MDE2MjUyMzE2OTRmZjU4NDU1ODRlYTU5YTAuLjIwZTdh
NzY5OGMxNjQ1M2E0ZTViNTRkNjM4NjI1YzlkNWJiZWU3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0
YWJhc2UuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgc3RydWN0IEltcG9ydGVkU2NyaXB0QXR0cmli
dXRlcyB7CiAgICAgfQogfTsKIAotc3RhdGljIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0
dHJpYnV0ZXM+IHN0cmlwU2NyaXB0U291cmNlcyhjb25zdCBIYXNoTWFwPFVSTCwgU2VydmljZVdv
cmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mIG1hcCkKK3N0YXRpYyBIYXNoTWFwPFVS
TCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiBzdHJpcFNjcmlwdFNvdXJjZXMoY29uc3QgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6
OkltcG9ydGVkU2NyaXB0PiYgbWFwKQogewogICAgIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlw
dEF0dHJpYnV0ZXM+IG1hcFdpdGhvdXRTY3JpcHRzOwogICAgIGZvciAoYXV0byYgcGFpciA6IG1h
cCkKQEAgLTEzNyw5ICsxMzcsOSBAQCBzdGF0aWMgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0
QXR0cmlidXRlcz4gc3RyaXBTY3JpcHRTb3VyY2VzKGNvbnN0IEhhc2hNYXA8VQogICAgIHJldHVy
biBtYXBXaXRob3V0U2NyaXB0czsKIH0KIAotc3RhdGljIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBwb3B1bGF0ZVNjcmlwdFNvdXJjZXNGcm9t
RGlzayhTV1NjcmlwdFN0b3JhZ2UmIHNjcmlwdFN0b3JhZ2UsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2Ny
aXB0QXR0cmlidXRlcz4mJiBtYXApCitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hN
YXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBwb3B1bGF0
ZVNjcmlwdFNvdXJjZXNGcm9tRGlzayhTV1NjcmlwdFN0b3JhZ2UmIHNjcmlwdFN0b3JhZ2UsIGNv
bnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgSGFzaE1h
cDxVUkwsIEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcz4mJiBtYXApCiB7Ci0gICAgSGFzaE1hcDxV
UkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IGltcG9ydGVkU2Ny
aXB0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IGltcG9ydGVkU2NyaXB0czsKICAgICBmb3Ig
KGF1dG8mIHBhaXIgOiBtYXApIHsKICAgICAgICAgYXV0byBpbXBvcnRlZFNjcmlwdCA9IHNjcmlw
dFN0b3JhZ2UucmV0cmlldmUocmVnaXN0cmF0aW9uS2V5LCBwYWlyLmtleSk7CiAgICAgICAgIGlm
ICghaW1wb3J0ZWRTY3JpcHQpIHsKQEAgLTQ4MSw3ICs0ODEsNyBAQCBib29sIFJlZ2lzdHJhdGlv
bkRhdGFiYXNlOjpkb1B1c2hDaGFuZ2VzKGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE+JgogICAgICAgICBBU1NFUlQobWFpblNjcmlwdCk7CiAgICAgICAgIGlmICghbWFpblNj
cmlwdCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgSGFzaE1hcDxVUkwsIFNj
cmlwdEJ1ZmZlcj4gaW1wb3J0ZWRTY3JpcHRzOworICAgICAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4gaW1wb3J0ZWRTY3JpcHRzOwogICAgICAgICBm
b3IgKGF1dG8mIFtzY3JpcHRVUkwsIHNjcmlwdF0gOiBkYXRhLnNjcmlwdFJlc291cmNlTWFwKSB7
CiAgICAgICAgICAgICBhdXRvIGltcG9ydGVkU2NyaXB0ID0gc2NyaXB0U3RvcmFnZS5zdG9yZShk
YXRhLnJlZ2lzdHJhdGlvbi5rZXksIHNjcmlwdFVSTCwgc2NyaXB0LnNjcmlwdCk7CiAgICAgICAg
ICAgICBBU1NFUlQoaW1wb3J0ZWRTY3JpcHQpOwpAQCAtNTQ2LDcgKzU0Niw3IEBAIFN0cmluZyBS
ZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3JkcygpCiAKICAgICAgICAgYXV0byByZWZl
cnJlclBvbGljeSA9IHNxbC0+Y29sdW1uVGV4dCgxMCk7CiAKLSAgICAgICAgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNl
TWFwOworICAgICAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOwogICAg
ICAgICBhdXRvIHNjcmlwdFJlc291cmNlTWFwRGF0YVNwYW4gPSBzcWwtPmNvbHVtbkJsb2JBc1Nw
YW4oMTEpOwogICAgICAgICBpZiAoc2NyaXB0UmVzb3VyY2VNYXBEYXRhU3Bhbi5zaXplKCkpIHsK
ICAgICAgICAgICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgc2NyaXB0UmVzb3VyY2VNYXBE
ZWNvZGVyKHNjcmlwdFJlc291cmNlTWFwRGF0YVNwYW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcApp
bmRleCAyMTkwNTc2MTYzODk3OTJlYzNhYzYwMTY1MTgxMmMzNzU1OTIyOGNkLi40ODJkNzEwOGIw
ZmYxNDgwYWRkMjdiNzZmZGNiNzhmZWNhMzNmZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcApA
QCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgUmVnaXN0cmF0aW9uU3RvcmU6OmFkZFJlZ2lzdHJhdGlv
bkZyb21EYXRhYmFzZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkCiAgICAgbV9zZXJ2ZXIu
YWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKFdURk1vdmUoZGF0YSkpOwogfQogCi12b2lkIFJlZ2lz
dHJhdGlvblN0b3JlOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlw
dCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCit2b2lkIFJl
Z2lzdHJhdGlvblN0b3JlOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNj
cmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYg
aW1wb3J0ZWRTY3JpcHRzKQogewogICAgIG1fc2VydmVyLmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9E
aXNrKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5TY3JpcHQpLCBXVEZNb3Zl
KGltcG9ydGVkU2NyaXB0cykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCmluZGV4IDNiM2NkOTg3Yjcx
ZTQyNDcxZjFlMjI2Njc1MDcwNTk0OTFlMmNiM2QuLjA1ZWEwYmMzNjFkNGRlMzZmMWIwMzkyYTFi
YTA3OTcyZDllZjYxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uRnJvbURhdGFiYXNlKFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSYmKTsKICAgICB2b2lkIGRhdGFiYXNlRmFpbGVkVG9PcGVuKCk7CiAgICAgdm9p
ZCBkYXRhYmFzZU9wZW5lZEFuZFJlY29yZHNJbXBvcnRlZCgpOwotICAgIHZvaWQgZGlkU2F2ZVdv
cmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYm
IG1haW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRz
KTsKKyAgICB2b2lkIGRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOwogCiAgICAgU1dT
ZXJ2ZXImIHNlcnZlcigpIHsgcmV0dXJuIG1fc2VydmVyOyB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGRhMWIwOWE1
MzU3ZThmYjU1NTJjYmZjZTBhNDU2ZDYyODMzNTI3ZjYuLjM0ZTQ0OTU3OWNjYTIyNjNkYzhlMGFm
YWJiODkxNjQ1MjU1NTJkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBTV1NlcnZl
cjo6YWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGRh
dGEpCiAgICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9E
aXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3Jp
cHRCdWZmZXImJiBtYWluU2NyaXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9y
dGVkU2NyaXB0cykKK3ZvaWQgU1dTZXJ2ZXI6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZm
ZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlw
dEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCiB7CiAgICAgaWYgKGF1dG8gd29ya2VyID0gd29y
a2VyQnlJRChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpCiAgICAgICAgIHdvcmtlci0+ZGlkU2F2
ZVNjcmlwdHNUb0Rpc2soV1RGTW92ZShtYWluU2NyaXB0KSwgV1RGTW92ZShpbXBvcnRlZFNjcmlw
dHMpKTsKQEAgLTcxNyw3ICs3MTcsNyBAQCB2b2lkIFNXU2VydmVyOjpyZW1vdmVDbGllbnRTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlcgogICAgICAg
ICByZWdpc3RyYXRpb24tPnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oY29u
bmVjdGlvbi5pZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIo
Y29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwg
U1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50
U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNvZXAsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3Vy
Y2VNYXAsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBT
V1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJ
bmZvLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYgY29lcCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRT
Y3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXAsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKIHsKICAgICB0
cnlJbnN0YWxsQ29udGV4dERhdGEoU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsgam9iRGF0YUlk
ZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBzY3JpcHQsIGNlcnRpZmljYXRlSW5mbywgY29udGVudFNlY3VyaXR5UG9saWN5
LCBjb2VwLCByZWZlcnJlclBvbGljeSwgdXJsLCB0eXBlLCBmYWxzZSwgY2xpZW50SXNBcHBJbml0
aWF0ZWRGb3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbih1cmwpKSwgV1RGTW92
ZShzY3JpcHRSZXNvdXJjZU1hcCksIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgeyB9IH0p
OwogfQpAQCAtODAxLDcgKzgwMSw3IEBAIHZvaWQgU1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0
YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiAgICAgfQogCiAgICAgYXV0
byogcmVnaXN0cmF0aW9uID0gbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwLmdldChkYXRhLnJlZ2lz
dHJhdGlvbi5rZXkpLmdldCgpOwotICAgIGF1dG8gd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmNy
ZWF0ZSgqdGhpcywgKnJlZ2lzdHJhdGlvbiwgZGF0YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBk
YXRhLmNlcnRpZmljYXRlSW5mbywgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGRhdGEuY3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSwgU3RyaW5nIHsgZGF0YS5yZWZlcnJlclBvbGljeSB9LCBk
YXRhLndvcmtlclR5cGUsIGRhdGEuc2VydmljZVdvcmtlcklkZW50aWZpZXIsIEhhc2hNYXA8VVJM
LCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiB7IGRhdGEuc2NyaXB0
UmVzb3VyY2VNYXAgfSk7CisgICAgYXV0byB3b3JrZXIgPSBTV1NlcnZlcldvcmtlcjo6Y3JlYXRl
KCp0aGlzLCAqcmVnaXN0cmF0aW9uLCBkYXRhLnNjcmlwdFVSTCwgZGF0YS5zY3JpcHQsIGRhdGEu
Y2VydGlmaWNhdGVJbmZvLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZGF0YS5jcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LCBTdHJpbmcgeyBkYXRhLnJlZmVycmVyUG9saWN5IH0sIGRhdGEu
d29ya2VyVHlwZSwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0PiB7IGRhdGEuc2NyaXB0UmVzb3VyY2VNYXAgfSk7CiAKICAgICBhdXRvKiBjb25uZWN0aW9u
ID0gd29ya2VyLT5jb250ZXh0Q29ubmVjdGlvbigpOwogICAgIEFTU0VSVChjb25uZWN0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApp
bmRleCA0ZTI5ZmJlNGMzZDkxYjRlYjk3NjM5N2RmZWFiZDQ5Yjk3YzFiYjk3Li5kM2M0OWYyYWMw
YzFhNGEzZWU2NDAzMmU0ZTM3NmQzODBiOGFkNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTE1Niw3ICsxNTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGEmLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9v
bCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiAgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKIAotICAgIHZv
aWQgdXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNX
U2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29u
c3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOworICAgIHZv
aWQgdXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNX
U2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29u
c3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiwgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoU1dTZXJ2ZXJXb3JrZXIm
KTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNXU2VydmVyV29ya2VyJik7CiAKQEAgLTE5
Nyw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlS
ZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiAgICAgdm9pZCBhZGRSZWdpc3RyYXRp
b25Gcm9tU3RvcmUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYpOwotICAgIHZvaWQgZGlkU2F2
ZVdvcmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZl
ciYmIG1haW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3Jp
cHRzKTsKKyAgICB2b2lkIGRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOwogICAgIHZv
aWQgcmVnaXN0cmF0aW9uU3RvcmVJbXBvcnRDb21wbGV0ZSgpOwogICAgIHZvaWQgcmVnaXN0cmF0
aW9uU3RvcmVEYXRhYmFzZUZhaWxlZFRvT3BlbigpOwogICAgIHZvaWQgc3RvcmVSZWdpc3RyYXRp
b25Gb3JXb3JrZXIoU1dTZXJ2ZXJXb3JrZXImKTsKQEAgLTI5MSw3ICsyOTIsNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYWtQdHI8
U1dTZXJ2ZXJSZWdpc3RyYXRpb24+PiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllclRvUmVn
aXN0cmF0aW9uTWFwOwogICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIFVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4+IG1fY2xpZW50c0J5SWQ7CiAg
ICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IG1fY2xpZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlv
bjsKLSAgICBIYXNoTWFwPFN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
IG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI+IG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwOwogCiAgICAgVW5pcXVl
UmVmPFNXT3JpZ2luU3RvcmU+IG1fb3JpZ2luU3RvcmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJl
Z2lzdHJhdGlvblN0b3JlPiBtX3JlZ2lzdHJhdGlvblN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKaW5kZXggNTY5YjFhYzMwZTJkNDI5NDNhY2M5NTVjODllZWViOTQx
ODdhNGQwMy4uZjYyNzA5N2ExNzQxZjVhZWQ0Y2EwMDdjODQyM2Q0NzU5ZjA3YzkzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC02NSw3ICs2NSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVNjcmlw
dHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNv
bnN0IEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBmaXJlUHVzaEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPFZlY3Rvcjx1aW50OF90Pj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVOb3RpZmljYXRpb25FdmVudChTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgTm90aWZpY2F0aW9uRGF0YSYsIE5vdGlmaWNhdGlvbkV2ZW50VHlw
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApp
bmRleCBkMTllOWVhZWFjZWRmZmQ5YWFlYmRiMTE5NTFjOGM5N2MxMGVjZGFjLi41YzZiMmRiZGFi
M2I3NGJiM2ZmMzk2YjNkOThkYWY4ZWU1MWEyZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtNTAs
NyArNTAsNyBAQCBTV1NlcnZlcldvcmtlciogU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2Vy
Rm9ySWRlbnRpZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZgogfQogCiAvLyBGSVhNRTogVXNlIHIt
dmFsdWUgcmVmZXJlbmNlcyBmb3Igc2NyaXB0IGFuZCBjb250ZW50U2VjdXJpdHlQb2xpY3kKLVNX
U2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtlcihTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJl
Z2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU2Ny
aXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYgY3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXApCitT
V1NlcnZlcldvcmtlcjo6U1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFNj
cmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5m
bywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5cGUs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4m
JiBzY3JpcHRSZXNvdXJjZU1hcCkKICAgICA6IG1fc2VydmVyKHNlcnZlcikKICAgICAsIG1fcmVn
aXN0cmF0aW9uS2V5KHJlZ2lzdHJhdGlvbi5rZXkoKSkKICAgICAsIG1fcmVnaXN0cmF0aW9uKHJl
Z2lzdHJhdGlvbikKQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjpzZXRT
Y3JpcHRSZXNvdXJjZShVUkwmJiB1cmwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wbwog
ICAgIG1fc2NyaXB0UmVzb3VyY2VNYXAuc2V0KFdURk1vdmUodXJsKSwgV1RGTW92ZShzY3JpcHQp
KTsKIH0KIAotdm9pZCBTV1NlcnZlcldvcmtlcjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0
QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRl
ZFNjcmlwdHMpCit2b2lkIFNXU2VydmVyV29ya2VyOjpkaWRTYXZlU2NyaXB0c1RvRGlzayhTY3Jp
cHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkws
IFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCiB7CiAgICAgLy8gU2VuZCBtbWFwJ2Qg
dmVyc2lvbiBvZiB0aGUgc2NyaXB0cyB0byB0aGUgU2VydmljZVdvcmtlciBwcm9jZXNzIHNvIHdl
IGNhbiBzYXZlIGRpcnR5IG1lbW9yeS4KICAgICBpZiAoYXV0byogY29udGV4dENvbm5lY3Rpb24g
PSB0aGlzLT5jb250ZXh0Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCmluZGV4IDcxN2Q1NTllZGJm
MzgxYjA1YzU3MjBlNThlNmM0OWViNmM2ZDA3YzUuLjliZDU2N2MzY2I5NzExNTE4ODk3OTQ5YzIx
OTA4NTY1ODJmNzY1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvVVJMSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTEw
Niw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50
QnlWaXNpYmxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGNsaWVudElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4mJik+JiYpOwogICAgIHZvaWQgbWF0Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNs
aWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYm
KTsKICAgICB2b2lkIHNldFNjcmlwdFJlc291cmNlKFVSTCYmLCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE6OkltcG9ydGVkU2NyaXB0JiYpOwotICAgIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2so
U2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBp
bXBvcnRlZFNjcmlwdHMpOworICAgIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVm
ZmVyJiYgbWFpblNjcmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3Jp
cHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKIAogICAgIHZvaWQgc2tpcFdhaXRpbmcoKTsK
ICAgICBib29sIGlzU2tpcFdhaXRpbmdGbGFnU2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc1NraXBX
YWl0aW5nRmxhZ1NldDsgfQpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGlzQ2xpZW50QWN0aXZlU2VydmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgU1dTZXJ2ZXJXb3JrZXIo
U1dTZXJ2ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlw
dEJ1ZmZlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBT
dHJpbmcmJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0
PiYmKTsKKyAgICBTV1NlcnZlcldvcmtlcihTV1NlcnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9u
JiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZv
JiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJU
eXBlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hN
YXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmKTsKIAog
ICAgIHZvaWQgY2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGJvb2wgc3VjY2Vzcyk7CiAKQEAgLTE2
OSw3ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFi
bGVEb21haW47CiAgICAgYm9vbCBtX2lzU2tpcFdhaXRpbmdGbGFnU2V0IHsgZmFsc2UgfTsKICAg
ICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4+IG1fd2hlbkFjdGl2YXRlZEhh
bmRsZXJzOwotICAgIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9y
dGVkU2NyaXB0PiBtX3NjcmlwdFJlc291cmNlTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4g
bV9zY3JpcHRSZXNvdXJjZU1hcDsKICAgICBib29sIG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faGFzVGltZWRPdXRBbnlGZXRjaFRhc2tzIHsgZmFsc2UgfTsK
ICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV90ZXJtaW5hdGlvbkNhbGxi
YWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHAKaW5kZXggMDAzODU0YjYxMGYzMzFkN2U4NDQ5OWJlOWIxY2Q2NjYzNmUxZmQzNS4uZjg2
ODA5OWI1ODc5NDZhYzRjZDNhNWZhOWJhZWVkMzYzMGNiNzU2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTE0Niw3ICsxNDYs
NyBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2Vy
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpUZXJtaW5hdGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50
aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFNh
dmVTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBTY3JpcHRCdWZmZXImIHNjcmlwdCwgY29uc3QgSGFzaE1hcDxVUkwsIFNj
cmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0
ZWRTY3JpcHRzKQogewogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpICYmIFBMQVRGT1JN
KENPQ09BKQogICAgIC8vIFNlbmQgZmlsZS1tYXBwZWQgU2NyaXB0QnVmZmVycyBvdmVyIHRvIHRo
ZSBTZXJ2aWNlV29ya2VyIHByb2Nlc3Mgc28gdGhhdCBpdCBjYW4gcmVwbGFjZSBpdHMgaGVhcC1h
bGxvY2F0ZWQgY29waWVzIGFuZCBzYXZlIG9uIGRpcnR5IG1lbW9yeS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCA0ZWQwNmUyODY5MmI0
MmM4YTRjOGI2ZmIxMGEwN2M0ZDIzZDVjOWI4Li42MmEyZDk2Y2U0YTcyMmExYzlmYWUxOGNiOTQ2
NGEyYTQ0OTdlNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaXJlSW5z
dGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29u
c3QgSGFzaE1hcDxVUkwsIFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykg
ZmluYWw7CisgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29uc3QgTWVtb3J5
Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBXZWJDb3JlOjpTY3JpcHRCdWZmZXI+JiBpbXBv
cnRlZFNjcmlwdHMpIGZpbmFsOwogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIGZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgZmlyZU5v
dGlmaWNhdGlvbkV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJiwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRXZlbnRUeXBl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZmQ1YWI4
MWEzY2I4YWYxNTc1NTcyNDUzZTJjZmM1M2FmNGMwYjJjZi4uOWM3MmQ1YzNhMTJlYzE0Nzc5ZWRl
YTc0ZDBmZTE5MGZjZDNkOTNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGQ6Om9wdGlv
bmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHBhcmFtZXRl
cnMubG9hZHNTdWJyZXNvdXJjZXMgPSAqbG9hZHNTdWJyZXNvdXJjZXM7CiAKLSAgICBzdGQ6Om9w
dGlvbmFsPHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxTdHJpbmc+Pj4gYWxsb3dlZE5ldHdvcmtIb3N0
czsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9u
bHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+PiBhbGxvd2VkTmV0d29ya0hvc3RzOwogICAgIGRl
Y29kZXIgPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBpZiAoIWFsbG93ZWROZXR3b3JrSG9z
dHMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggODRmYzQ2YzZmOWE2NGNkN2Zh
M2JjODU5MDFhZjBiYmIwYTY4NTVkOS4uYzE4OTY5ZWM2MDg3Y2M5YjZjNzU4ZThhYTMyOTI4ZDAy
NzcyZDIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaApAQCAtNTAsNyArNTAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkUmVs
YXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1l
bnRzLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxF
KEFQUExJQ0FUSU9OX01BTklGRVNUKQpAQCAtMjI0LDcgKzIyNCw3IEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0
dGVybnM7CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7
IHRydWUgfTsKICAgICBib29sIGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwotICAgIHN0ZDo6
b3B0aW9uYWw8SGFzaFNldDxTdHJpbmc+PiBhbGxvd2VkTmV0d29ya0hvc3RzOworICAgIHN0ZDo6
b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+
IGFsbG93ZWROZXR3b3JrSG9zdHM7CiAKICAgICBib29sIGNyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bENoZWNrRW5hYmxlZCB7IHRydWUgfTsKICAgICBTdHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24u
aAppbmRleCBiNWI1ZTI1YjRkNjRlOGJiZTZmZWFkM2FlMmFmYTVkMGI2OTFjNDg3Li41NGE4YmVl
MzY1Y2I4ODMwYzFkYmE3ZjM5ODZmZDUzYTEwMjJmZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE1Nyw4ICsxNTcsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNTdWJy
ZXNvdXJjZXM7IH0KICAgICB2b2lkIHNldExvYWRzU3VicmVzb3VyY2VzKGJvb2wgbG9hZHMpIHsg
bV9sb2Fkc1N1YnJlc291cmNlcyA9IGxvYWRzOyB9CiAKLSAgICBjb25zdCBzdGQ6Om9wdGlvbmFs
PEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYgYWxsb3dlZE5ldHdvcmtIb3N0cygpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dlZE5ldHdvcmtIb3N0czsgfQotICAgIHZvaWQgc2V0QWxsb3dlZE5ldHdvcmtI
b3N0cyhzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYmIGhvc3RzKSB7IG1fYWxs
b3dlZE5ldHdvcmtIb3N0cyA9IFdURk1vdmUoaG9zdHMpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRp
b25hbDxNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8V1RGOjpTdHJpbmc+
PiYgYWxsb3dlZE5ldHdvcmtIb3N0cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE5ldHdvcmtI
b3N0czsgfQorICAgIHZvaWQgc2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhzdGQ6Om9wdGlvbmFsPE1l
bW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxXVEY6OlN0cmluZz4+JiYgaG9z
dHMpIHsgbV9hbGxvd2VkTmV0d29ya0hvc3RzID0gV1RGTW92ZShob3N0cyk7IH0KIAogI2lmIEVO
QUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBib29sIGlnbm9yZXNBcHBCb3VuZERvbWFpbnMo
KSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNBcHBCb3VuZERvbWFpbnM7IH0KQEAgLTIzNSw3ICsy
MzUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVj
a0VuYWJsZWQgeyB0cnVlIH07CiAgICAgV1RGOjpTdHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7
CiAgICAgYm9vbCBtX2xvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwotICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaFNldDxXVEY6OlN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6
Om9wdGlvbmFsPE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxXVEY6OlN0
cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICAKICNpZiBFTkFCTEUoQVBQX0JPVU5E
X0RPTUFJTlMpCiAgICAgYm9vbCBtX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCAxMmI5YzUwNzJlZDczMjhkNDBjNGYzZWNjN2FhNjI0
OWZjYTZkZjg4Li5lODc4OWE5MWU5Y2M3NmRlZTQ2ZGE0NzE4ZGJlMjNmM2ZjMWYwYmQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0
Lmg+CiAjaW1wb3J0IDx3dGYvVVJMUGFyc2VyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIu
aD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgpA
QCAtOTgyLDcgKzk4Myw3IEBAIC0gKHZvaWQpX3NldENPUlNEaXNhYmxpbmdQYXR0ZXJuczooTlNB
cnJheTxOU1N0cmluZyAqPiAqKXBhdHRlcm5zCiAKIC0gKHZvaWQpX3NldExvYWRzRnJvbU5ldHdv
cms6KEJPT0wpbG9hZHMKIHsKLSAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFsbG93ZWROZXR3
b3JrSG9zdHMobG9hZHMgPyBzdGQ6Om51bGxvcHQgOiBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8U3Ry
aW5nPj4geyBIYXNoU2V0PFN0cmluZz4geyB9IH0pOworICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+
c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhsb2FkcyA/IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6b3B0aW9u
YWwgeyBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiB7IH0g
fSk7CiB9CiAKIC0gKEJPT0wpX2xvYWRzRnJvbU5ldHdvcmsKQEAgLTk5NCw3ICs5OTUsNyBAQCAt
ICh2b2lkKV9zZXRBbGxvd2VkTmV0d29ya0hvc3RzOihOU1NldDxOU1N0cmluZyAqPiAqKWhvc3Rz
CiB7CiAgICAgaWYgKCFob3N0cykKICAgICAgICAgcmV0dXJuIF9wYWdlQ29uZmlndXJhdGlvbi0+
c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhzdGQ6Om51bGxvcHQpOwotICAgIEhhc2hTZXQ8U3RyaW5n
PiBzZXQ7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmlu
Zz4gc2V0OwogICAgIGZvciAoTlNTdHJpbmcgKmhvc3QgaW4gaG9zdHMpCiAgICAgICAgIHNldC5h
ZGQoaG9zdCk7CiAgICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRBbGxvd2VkTmV0d29ya0hvc3Rz
KFdURk1vdmUoc2V0KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlvcGFyYW0taXRlcmFibGUuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1h
dWRpb3BhcmFtLWl0ZXJhYmxlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNWU3ZGExZjhjMjNh
MzkxMTM1ZjE2OTY4OWU5YWUxMWZjZDIwYzEzLi44MzgyYjE4MzYyNTg1ZjFmMjM5ZWI0MGNhOTZh
YTgyMzU3YmU0MWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlvcGFyYW0taXRlcmFibGUuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXQt
YXVkaW9wYXJhbS1pdGVyYWJsZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsMTEgKzIsNiBAQAog
UEFTUyBDcmVhdGluZyBhbiBBdWRpb1dvcmtsZXROb2RlIHdpdGggYSBzZXQgZm9yCiAgICAgICAg
ICAgICAgICAgICAgIHBhcmFtZXRlciBkZXNjcmlwdG9yIHdvcmtlZAogUEFTUyBNYXAgbWF0Y2gg
aW4gc2l6ZSBmb3Igc2V0Ci1QQVNTIHNldDog5L2g5aW9IGV4aXN0cyBpbiBib3RoIG1hcHMKLVBB
U1MgVmFsdWVzIGZvciDkvaDlpb0uZGVmYXVsdFZhbHVlIG1hdGNoIGZvciBzZXQKLVBBU1MgVmFs
dWVzIGZvciDkvaDlpb0ubWluVmFsdWUgbWF0Y2ggZm9yIHNldAotUEFTUyBWYWx1ZXMgZm9yIOS9
oOWlvS5tYXhWYWx1ZSBtYXRjaCBmb3Igc2V0Ci1QQVNTIFZhbHVlcyBmb3Ig5L2g5aW9LmF1dG9t
YXRpb25SYXRlIG1hdGNoIGZvciBzZXQKIFBBU1Mgc2V0OiBhIGNvbnRyb2wtcmF0ZSBwYXJhbWV0
ZXIgZXhpc3RzIGluIGJvdGggbWFwcwogUEFTUyBWYWx1ZXMgZm9yIGEgY29udHJvbC1yYXRlIHBh
cmFtZXRlci5kZWZhdWx0VmFsdWUgbWF0Y2ggZm9yIHNldAogUEFTUyBWYWx1ZXMgZm9yIGEgY29u
dHJvbC1yYXRlIHBhcmFtZXRlci5taW5WYWx1ZSBtYXRjaCBmb3Igc2V0CkBAIC0xNywxNCArMTIs
MTQgQEAgUEFTUyBWYWx1ZXMgZm9yIPCfjrYuZGVmYXVsdFZhbHVlIG1hdGNoIGZvciBzZXQKIFBB
U1MgVmFsdWVzIGZvciDwn462Lm1pblZhbHVlIG1hdGNoIGZvciBzZXQKIFBBU1MgVmFsdWVzIGZv
ciDwn462Lm1heFZhbHVlIG1hdGNoIGZvciBzZXQKIFBBU1MgVmFsdWVzIGZvciDwn462LmF1dG9t
YXRpb25SYXRlIG1hdGNoIGZvciBzZXQKK1BBU1Mgc2V0OiDkvaDlpb0gZXhpc3RzIGluIGJvdGgg
bWFwcworUEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5kZWZhdWx0VmFsdWUgbWF0Y2ggZm9yIHNldAor
UEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5taW5WYWx1ZSBtYXRjaCBmb3Igc2V0CitQQVNTIFZhbHVl
cyBmb3Ig5L2g5aW9Lm1heFZhbHVlIG1hdGNoIGZvciBzZXQKK1BBU1MgVmFsdWVzIGZvciDkvaDl
pb0uYXV0b21hdGlvblJhdGUgbWF0Y2ggZm9yIHNldAogUEFTUyBDcmVhdGluZyBhbiBBdWRpb1dv
cmtsZXROb2RlIHdpdGggYSBhcnJheSBmb3IKICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVy
IGRlc2NyaXB0b3Igd29ya2VkCiBQQVNTIE1hcCBtYXRjaCBpbiBzaXplIGZvciBhcnJheQotUEFT
UyBhcnJheTog5L2g5aW9IGV4aXN0cyBpbiBib3RoIG1hcHMKLVBBU1MgVmFsdWVzIGZvciDkvaDl
pb0uZGVmYXVsdFZhbHVlIG1hdGNoIGZvciBhcnJheQotUEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5t
aW5WYWx1ZSBtYXRjaCBmb3IgYXJyYXkKLVBBU1MgVmFsdWVzIGZvciDkvaDlpb0ubWF4VmFsdWUg
bWF0Y2ggZm9yIGFycmF5Ci1QQVNTIFZhbHVlcyBmb3Ig5L2g5aW9LmF1dG9tYXRpb25SYXRlIG1h
dGNoIGZvciBhcnJheQogUEFTUyBhcnJheTogYSBjb250cm9sLXJhdGUgcGFyYW1ldGVyIGV4aXN0
cyBpbiBib3RoIG1hcHMKIFBBU1MgVmFsdWVzIGZvciBhIGNvbnRyb2wtcmF0ZSBwYXJhbWV0ZXIu
ZGVmYXVsdFZhbHVlIG1hdGNoIGZvciBhcnJheQogUEFTUyBWYWx1ZXMgZm9yIGEgY29udHJvbC1y
YXRlIHBhcmFtZXRlci5taW5WYWx1ZSBtYXRjaCBmb3IgYXJyYXkKQEAgLTM1LDI0ICszMCwyOSBA
QCBQQVNTIFZhbHVlcyBmb3Ig8J+Oti5kZWZhdWx0VmFsdWUgbWF0Y2ggZm9yIGFycmF5CiBQQVNT
IFZhbHVlcyBmb3Ig8J+Oti5taW5WYWx1ZSBtYXRjaCBmb3IgYXJyYXkKIFBBU1MgVmFsdWVzIGZv
ciDwn462Lm1heFZhbHVlIG1hdGNoIGZvciBhcnJheQogUEFTUyBWYWx1ZXMgZm9yIPCfjrYuYXV0
b21hdGlvblJhdGUgbWF0Y2ggZm9yIGFycmF5CitQQVNTIGFycmF5OiDkvaDlpb0gZXhpc3RzIGlu
IGJvdGggbWFwcworUEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5kZWZhdWx0VmFsdWUgbWF0Y2ggZm9y
IGFycmF5CitQQVNTIFZhbHVlcyBmb3Ig5L2g5aW9Lm1pblZhbHVlIG1hdGNoIGZvciBhcnJheQor
UEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5tYXhWYWx1ZSBtYXRjaCBmb3IgYXJyYXkKK1BBU1MgVmFs
dWVzIGZvciDkvaDlpb0uYXV0b21hdGlvblJhdGUgbWF0Y2ggZm9yIGFycmF5CiBQQVNTIENyZWF0
aW5nIGFuIEF1ZGlvV29ya2xldE5vZGUgd2l0aCBhIGdlbmVyYXRvciBmb3IKICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1ldGVyIGRlc2NyaXB0b3Igd29ya2VkCiBQQVNTIE1hcCBtYXRjaCBpbiBz
aXplIGZvciBnZW5lcmF0b3IKLVBBU1MgZ2VuZXJhdG9yOiDkvaDlpb0gZXhpc3RzIGluIGJvdGgg
bWFwcwotUEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5kZWZhdWx0VmFsdWUgbWF0Y2ggZm9yIGdlbmVy
YXRvcgotUEFTUyBWYWx1ZXMgZm9yIOS9oOWlvS5taW5WYWx1ZSBtYXRjaCBmb3IgZ2VuZXJhdG9y
Ci1QQVNTIFZhbHVlcyBmb3Ig5L2g5aW9Lm1heFZhbHVlIG1hdGNoIGZvciBnZW5lcmF0b3IKLVBB
U1MgVmFsdWVzIGZvciDkvaDlpb0uYXV0b21hdGlvblJhdGUgbWF0Y2ggZm9yIGdlbmVyYXRvcgot
UEFTUyBnZW5lcmF0b3I6IGEgY29udHJvbC1yYXRlIHBhcmFtZXRlciBleGlzdHMgaW4gYm90aCBt
YXBzCi1QQVNTIFZhbHVlcyBmb3IgYSBjb250cm9sLXJhdGUgcGFyYW1ldGVyLmRlZmF1bHRWYWx1
ZSBtYXRjaCBmb3IgZ2VuZXJhdG9yCi1QQVNTIFZhbHVlcyBmb3IgYSBjb250cm9sLXJhdGUgcGFy
YW1ldGVyLm1pblZhbHVlIG1hdGNoIGZvciBnZW5lcmF0b3IKLVBBU1MgVmFsdWVzIGZvciBhIGNv
bnRyb2wtcmF0ZSBwYXJhbWV0ZXIubWF4VmFsdWUgbWF0Y2ggZm9yIGdlbmVyYXRvcgotUEFTUyBW
YWx1ZXMgZm9yIGEgY29udHJvbC1yYXRlIHBhcmFtZXRlci5hdXRvbWF0aW9uUmF0ZSBtYXRjaCBm
b3IgZ2VuZXJhdG9yCiBQQVNTIGdlbmVyYXRvcjog8J+OtiBleGlzdHMgaW4gYm90aCBtYXBzCiBQ
QVNTIFZhbHVlcyBmb3Ig8J+Oti5kZWZhdWx0VmFsdWUgbWF0Y2ggZm9yIGdlbmVyYXRvcgogUEFT
UyBWYWx1ZXMgZm9yIPCfjrYubWluVmFsdWUgbWF0Y2ggZm9yIGdlbmVyYXRvcgogUEFTUyBWYWx1
ZXMgZm9yIPCfjrYubWF4VmFsdWUgbWF0Y2ggZm9yIGdlbmVyYXRvcgogUEFTUyBWYWx1ZXMgZm9y
IPCfjrYuYXV0b21hdGlvblJhdGUgbWF0Y2ggZm9yIGdlbmVyYXRvcgorUEFTUyBnZW5lcmF0b3I6
IGEgY29udHJvbC1yYXRlIHBhcmFtZXRlciBleGlzdHMgaW4gYm90aCBtYXBzCitQQVNTIFZhbHVl
cyBmb3IgYSBjb250cm9sLXJhdGUgcGFyYW1ldGVyLmRlZmF1bHRWYWx1ZSBtYXRjaCBmb3IgZ2Vu
ZXJhdG9yCitQQVNTIFZhbHVlcyBmb3IgYSBjb250cm9sLXJhdGUgcGFyYW1ldGVyLm1pblZhbHVl
IG1hdGNoIGZvciBnZW5lcmF0b3IKK1BBU1MgVmFsdWVzIGZvciBhIGNvbnRyb2wtcmF0ZSBwYXJh
bWV0ZXIubWF4VmFsdWUgbWF0Y2ggZm9yIGdlbmVyYXRvcgorUEFTUyBWYWx1ZXMgZm9yIGEgY29u
dHJvbC1yYXRlIHBhcmFtZXRlci5hdXRvbWF0aW9uUmF0ZSBtYXRjaCBmb3IgZ2VuZXJhdG9yCitQ
QVNTIGdlbmVyYXRvcjog5L2g5aW9IGV4aXN0cyBpbiBib3RoIG1hcHMKK1BBU1MgVmFsdWVzIGZv
ciDkvaDlpb0uZGVmYXVsdFZhbHVlIG1hdGNoIGZvciBnZW5lcmF0b3IKK1BBU1MgVmFsdWVzIGZv
ciDkvaDlpb0ubWluVmFsdWUgbWF0Y2ggZm9yIGdlbmVyYXRvcgorUEFTUyBWYWx1ZXMgZm9yIOS9
oOWlvS5tYXhWYWx1ZSBtYXRjaCBmb3IgZ2VuZXJhdG9yCitQQVNTIFZhbHVlcyBmb3Ig5L2g5aW9
LmF1dG9tYXRpb25SYXRlIG1hdGNoIGZvciBnZW5lcmF0b3IKIFBBU1MgQXR0ZW1wdGluZyB0byBj
cmVhdGUgYW4gQXVkaW9Xb3JrbGV0Tm9kZSB3aXRoIGFuIG5vbgogICAgICAgICAgICAgICBpdGVy
YWJsZSBmb3IgcGFyYW1ldGVyIGRlc2NyaXB0b3Igc2hvdWxkIG5vdCB3b3JrCiBQQVNTIEF0dGVt
cHRpbmcgdG8gY3JlYXRlIGFuIEF1ZGlvV29ya2xldE5vZGUgZnJvbSBhIHByb2Nlc3Nvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458066</attachid>
            <date>2022-04-21 08:43:03 -0700</date>
            <delta_ts>2022-04-21 08:44:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239576-20220421084303.patch</filename>
            <type>text/plain</type>
            <size>110305</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE2NGY4MzU4ZmEwZTU1NTNjYzc2ZWU5
YzlmZDkzNDdhZjIwOGJhY2MuLjZjZDY0YWJmODIwNzY1MTI2YmFhMmM0OGZlYTFhNzljNTc0M2E2
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29k
SGFzaFNldCBtb3JlIGJyb2FkbHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdXNpbmcgUm9iaW5Ib29kSGFzaE1hcCAvIFJv
YmluSG9vZEhhc2hTZXQgd2l0aCBVUkwga2V5cyBzaW5jZSBhIFVSTCB3cmFwcyBhIFN0cmluZwor
ICAgICAgICBhbmQgdXNlcyBpdHMgaW50ZXJuYWwgU3RyaW5nJ3MgY2FjaGVkIGhhc2ggYXMgaGFz
aC4KKworICAgICAgICAqIHd0Zi9VUkxIYXNoLmg6CisKIDIwMjItMDQtMjAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHRydWUgLyBmYWxzZSBBdG9tU3Ry
aW5ncyB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5kIHJldXNlIHRoZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmY3NGRmMDFjOTA5YzJjODE3NTQyN2JkNWZkNWRiZGNiNjI2ZjY1Li4zMzQxYjdhZDIxZjhkYjQw
NGQ3MmRiZGEzOGIwMDA0NDg1ZTgyNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIyIEBACisy
MDIyLTA0LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5IGluIFdl
YkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
b3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUgYnJvYWRseSBpbiBX
ZWJDb3JlIHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5IGluIGhhc2ggdGFibGVzLgorICAgICAgICBS
b2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBoYXZlIG1vcmUgcmVzdHJpY3Rpb25z
IG9uIHdoYXQga2V5IHR5cGVzIHRoZXkgd29yayB3aXRoIGFuZCBtYXkgcmVzdWx0CisgICAgICAg
IGluIHNsaWdodGx5IGxvd2VyIHBlcmZvcm1hbmNlIGJ1dCB0aGV5IGhhdmUgYSBtdWNoIGhpZ2hl
ciBsb2FkIGZhY3RvciB0aGF0IHRoZSByZWd1bGFyIEhhc2hNYXAgLyBIYXNoU2V0LAorICAgICAg
ICB0aHVzIHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4gVGhpcyBwYXRjaCBhZG9wdHMgUm9iaW5Ib29k
SGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgb24gbm9uIHBlcmZvcm1hbmNlCisgICAgICAgIHNl
bnNpdGl2ZSBtYXBzIC8gc2V0cyBpbiBXZWJDb3JlIHRoYXQgaGF2ZSBjb21wYXRpYmxlIGtleXMg
KFN0cmluZyAvIEF0b21TdHJpbmcgLyBVUkwgYmVjYXVzZSB0aGV5IGNhY2hlCisgICAgICAgIHRo
ZWlyIGhhc2gpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJl
Z2lzdHJ5Lmg6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5
Q0RNU2Vzc2lvbkNsZWFyS2V5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmg6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5j
cHA6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnN0cnVjdEZyb3plbktleVZhbHVlT2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmplY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0Nv
bnRleHQ6OnBhcmFtZXRlckRlc2NyaXB0b3JNYXAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V1RGX1JFUVVJUkVT
X0xPQ0spOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6cmVjb3JkRGVsZXRpbmdEYXRh
YmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBkb20vQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21FbGVtZW50UmVn
aXN0cnk6OnByb21pc2VNYXApOgorICAgICAgICAqIGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5o
OgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb246Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6cmVzZXRPYnNlcnZhdGlvbik6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKiBk
b20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2Jz
ZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogZG9tL1dpbmRvd0V2ZW50
TG9vcC5jcHA6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
TmV0d29ya1Jlc291cmNlc0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1Jlc291
cmNlc0RhdGE6OmNsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0Rh
dGEuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRB
Y3RpdmVDb250ZW50UnVsZUxpc3RBY3Rpb25QYXR0ZXJucyk6CisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmg6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeU1lZGlh
TGlzdERpcmVjdGl2ZS5oOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eVNvdXJjZUxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXVEZfUkVRVUlSRVNfTE9DSyk6CisgICAgICAgICogcGxh
dGZvcm0vU3RhdGljUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Nv
dXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVUcmFja3NPZktp
bmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZW5lcmljRmFtaWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9UaHJlYWRDaGVjay5tbToKKyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZWZlcmVuY2VkU1ZHUmVzb3VyY2VzLmg6CisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50RXh0ZW5z
aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJh
dGlvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmlwU2NyaXB0U291cmNlcyk6
CisgICAgICAgIChXZWJDb3JlOjpwb3B1bGF0ZVNjcmlwdFNvdXJjZXNGcm9tRGlzayk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWdpc3RyYXRpb25EYXRhYmFzZTo6ZG9QdXNoQ2hhbmdlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZWdpc3RyYXRpb25TdG9yZTo6ZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rp
c2spOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNXU2VydmVyOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayk6CisgICAg
ICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dXBkYXRlV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNXU2VydmVyOjppbnN0YWxsQ29udGV4dERhdGEpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3Jr
ZXI6OlNXU2VydmVyV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpk
aWRTYXZlU2NyaXB0c1RvRGlzayk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5oOgorCiAyMDIyLTA0LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgdG8gcjI5MzEyMyB0byBhZGRy
ZXNzIHJldmlldyBmZWVkYmFjayBmcm9tIFNhbSAmIERhcmluCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhM2YwYzZj
OGQwZTBlZTU4NWQzYWY0ZmEwMjc1ODkzNmM2MjdkNGYuLjA1ZGFlODFiZjUzNTkzZjhiNjg0NTVj
NDhhY2U2MjE3NTZlNzEwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjItMDQtMjAg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBSb2Jpbkhv
b2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBtb3JlIGJyb2FkbHkgaW4gV2ViQ29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTc2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgUm9iaW5I
b29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5IGluIFdlYktpdCB0byBh
dm9pZCB3YXN0aW5nIG1lbW9yeSBpbiBoYXNoIHRhYmxlcy4KKyAgICAgICAgUm9iaW5Ib29kSGFz
aE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgaGF2ZSBtb3JlIHJlc3RyaWN0aW9ucyBvbiB3aGF0IGtl
eSB0eXBlcyB0aGV5IHdvcmsgd2l0aCBhbmQgbWF5IHJlc3VsdAorICAgICAgICBpbiBzbGlnaHRs
eSBsb3dlciBwZXJmb3JtYW5jZSBidXQgdGhleSBoYXZlIGEgbXVjaCBoaWdoZXIgbG9hZCBmYWN0
b3IgdGhhdCB0aGUgcmVndWxhciBIYXNoTWFwIC8gSGFzaFNldCwKKyAgICAgICAgdGh1cyByZWR1
Y2luZyBtZW1vcnkgdXNhZ2UuIFRoaXMgcGF0Y2ggYWRvcHRzIFJvYmluSG9vZEhhc2hNYXAgLyBS
b2Jpbkhvb2RIYXNoU2V0IG9uIG5vbiBwZXJmb3JtYW5jZQorICAgICAgICBzZW5zaXRpdmUgbWFw
cyAvIHNldHMgaW4gV2ViQ29yZSB0aGF0IGhhdmUgY29tcGF0aWJsZSBrZXlzIChTdHJpbmcgLyBB
dG9tU3RyaW5nIC8gVVJMIGJlY2F1c2UgdGhleSBjYWNoZQorICAgICAgICB0aGVpciBoYXNoKS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpkaWRTYXZlU2NyaXB0c1RvRGlzayk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9u
OjphbGxvd2VkTmV0d29ya0hvc3RzIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb246OnNldEFsbG93ZWROZXR3b3JrSG9zdHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfc2V0TG9hZHNGcm9tTmV0d29yazpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfc2V0QWxsb3dlZE5ldHdvcmtIb3N0czpdKToKKwogMjAyMi0wNC0yMCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCBmaXggdGhlIGlPUyAxNS40IGJ1aWxkIGFmdGVyIHIyOTMxMTcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1VSTEhhc2guaCBiL1NvdXJjZS9XVEYvd3RmL1VSTEhhc2guaAppbmRleCAy
NjllMmI1OTg0YzA1OWJhZmJmNDI5M2QwZGY0MTM4MTk3MTVhY2I5Li45N2EzZWU1NWVlZmJlNzRk
ZWU2ZWMwY2QwYzFmZDJmY2IwZjhmZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkxI
YXNoLmgKKysrIGIvU291cmNlL1dURi93dGYvVVJMSGFzaC5oCkBAIC00NCw2ICs0NCw3IEBAIHN0
cnVjdCBVUkxIYXNoIHsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaGFzSGFzaEluVmFsdWUgPSB0cnVlOwogfTsKIAogLy8gVVJMSGFzaCBpcyB0aGUgZGVmYXVs
dCBoYXNoIGZvciBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKaW5kZXggNzdkNjA0YjA4YmI3ZjdlMzhi
Y2NiMzU0NWIzNGM4YjEzNDM1NWVmMi4uNzc2NzYyNjQ3ODliMjY1ZTExMzQ5ODlhMmEwOTFiNzJh
MmJkNTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKQEAgLTI4LDkgKzI4LDkgQEAKICNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9tU3RyaW5nSGFzaC5oPgpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIElu
aXREYXRhUmVnaXN0cnkoKTsKICAgICB+SW5pdERhdGFSZWdpc3RyeSgpOwogCi0gICAgSGFzaE1h
cDxBdG9tU3RyaW5nLCBJbml0RGF0YVR5cGVDYWxsYmFja3M+IG1fdHlwZXM7CisgICAgTWVtb3J5
Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8QXRvbVN0cmluZywgSW5pdERhdGFUeXBlQ2FsbGJhY2tz
PiBtX3R5cGVzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNzaW9uQ2xl
YXJLZXkuaAppbmRleCBhOWI0ZDBhMzYzZWQ1OGI0YzBkNDJhNDMyY2U5Nzg0ZTcxYTcxYTIwLi5k
NTIyM2U2NTMyMmEwNTU0M2JmMGU5Y2I2OTFjNTJkYmVhZjljZTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNzaW9u
Q2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xl
Z2FjeS9MZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaApAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgiCi0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEp
CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxMZWdhY3lD
RE1TZXNzaW9uQ2xpZW50PiBtX2NsaWVudDsKICAgICBSZWZQdHI8VWludDhBcnJheT4gbV9pbml0
RGF0YTsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPHVpbnQ4X3Q+PiBtX2NhY2hlZEtleXM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8dWludDhf
dD4+IG1fY2FjaGVkS2V5czsKICAgICBTdHJpbmcgbV9zZXNzaW9uSWQ7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJh
bnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJUcmFuc2FjdGlvbi5oCmluZGV4IGJkMGZjYThmOTcxMGQzZjc3YzUyNzYyMTEzODIwY2Rk
NDJmYjA4ZmYuLmYyZWY0ODEwNDFlNDAzNGEzMGViMzFmM2MwYTIzNDFiN2M4M2U3MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJU
cmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiSURC
VHJhbnNhY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SURC
UmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U1FMaXRlSURCQ3Vyc29yPj4gbV9j
dXJzb3JzOwogICAgIEhhc2hTZXQ8U1FMaXRlSURCQ3Vyc29yKj4gbV9iYWNraW5nU3RvcmVDdXJz
b3JzOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBtX2Jsb2JUZW1wb3Jh
cnlBbmRTdG9yZWRGaWxlbmFtZXM7Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fYmxvYlJlbW92ZWRG
aWxlbmFtZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX2Js
b2JSZW1vdmVkRmlsZW5hbWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VS
ZWdpc3RyeS5oCmluZGV4IGI3ZGZlNDRiMjVmYzQ3NzIxNzRhYTY0NmU0YjU4YzBhMzJlZTIyOWQu
LmE3NWU0OTNkMzUzNzU0NjQxMTIwZGI1YWYwMzNkNTU3ODY4NGEyMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3Ry
eS5oCkBAIC0zMyw3ICszMyw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1
ZGUgIlVSTFJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgTWVkaWFTb3VyY2VSZWdpc3RyeSgpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQ
dHI8TWVkaWFTb3VyY2U+PiBtX21lZGlhU291cmNlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4+IG1fbWVkaWFTb3VyY2VzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggZTE4ZDU0ZDQwNmMzNTczNWM2NDli
YjdhOTdlOGVjYmM3MzQ2NzY2Ny4uYTQ5NDFiMjkzZjI2NDcxNzBiYzRjOWFlYTE2ZTNlOTJjYjk4
ZjI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50
LmgiCisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzMsNyArMTM0LDcgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25TZXQ8R2VzdHVyZUFsbG93ZWRSZXF1ZXN0PiBtX3JlcXVlc3RUeXBlc0Zv
ckN1cnJlbnRHZXN0dXJlOwogICAgIFdlYWtQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV9jdXJyZW50
R2VzdHVyZVRva2VuOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1
dERldmljZUlkVG9QZXJzaXN0ZW50SWQ7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkOwog
ICAgIFN0cmluZyBtX2F1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggNzQzMTgwZDI5YmVj
NTM1N2RmMGMxZTQ4MmZlOGEyNTY0ZGJlOTA3ZS4uMjRiZjUxZjgzMTMxYTJkOTkyMWZhMzI5MjRi
MjllN2FlYmRiOTllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uaApAQCAtMzgsOSArMzgsOSBAQAogI2luY2x1ZGUgIlNjcmlwdFdyYXBw
YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKLSNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IG1fcHJpdmF0ZTsKIAotICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IG1fdHJhY2tTZXQ7CisgICAgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IG1f
dHJhY2tTZXQ7CiAKICAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fc3RhdGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAppbmRleCBjZmNhNmVkZjIy
ZGE3Mjc1MjY2MGQyMjc2MDgyZDkwMWY4MzU2ZDdlLi4xOWQxOGQxMzY3NmRkODIzZDVkZDNhNmJk
MzcxZWEyY2IwNjk2MTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2lu
dC5oCkBAIC00NCw2ICs0NCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVy
Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIHdlYnJ0YyB7CkBAIC0xOTAsMTMgKzE5
MSwxMyBAQCBwcml2YXRlOgogICAgIFNldExvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXI8
TGliV2ViUlRDTWVkaWFFbmRwb2ludD4gbV9zZXRMb2NhbFNlc3Npb25EZXNjcmlwdGlvbk9ic2Vy
dmVyOwogICAgIFNldFJlbW90ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyPExpYldlYlJUQ01l
ZGlhRW5kcG9pbnQ+IG1fc2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXI7CiAKLSAg
ICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtPj4gbV9yZW1vdGVTdHJlYW1zQnlJ
ZDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRp
YVN0cmVhbT4+IG1fcmVtb3RlU3RyZWFtc0J5SWQ7CiAgICAgSGFzaE1hcDxNZWRpYVN0cmVhbVRy
YWNrKiwgVmVjdG9yPFN0cmluZz4+IG1fcmVtb3RlU3RyZWFtc0Zyb21SZW1vdGVUcmFjazsKIAog
ICAgIGJvb2wgbV9pc0luaXRpYXRvciB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9zdGF0c0xvZ1Rp
bWVyOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1l
ZGlhU3RyZWFtSW50ZXJmYWNlPj4gbV9sb2NhbFN0cmVhbXM7CisgICAgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0
cmVhbUludGVyZmFjZT4+IG1fbG9jYWxTdHJlYW1zOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExp
YldlYlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFj
dG9yeTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCmluZGV4IGY1NTA3ODBhODFk
NjI0ZjMxZDBlMTgzMzkzZTU1MTQzNTM0MGExYzIuLjc4ZTNiYzk0YjlhZDA4MTBjY2Y3MDJiOWVh
MTVkNjJmMmUwMTYzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIldl
YkxvY2tNYW5hZ2VyU25hcHNob3QuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5I
b29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVy
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Niw4ICs2Nyw4IEBAIHByaXZhdGU6CiAK
ICAgICBXZWFrUHRyPExvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBtX2dsb2JhbFJlZ2lzdHJ5OwogICAg
IENsaWVudE9yaWdpbiBtX2NsaWVudE9yaWdpbjsKLSAgICBIYXNoTWFwPFN0cmluZywgRGVxdWU8
TG9ja1JlcXVlc3Q+PiBtX2xvY2tSZXF1ZXN0UXVldWVNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcs
IFZlY3RvcjxMb2NrSW5mbz4+IG1faGVsZExvY2tzOworICAgIEZhc3RSb2Jpbkhvb2RIYXNoTWFw
PFN0cmluZywgRGVxdWU8TG9ja1JlcXVlc3Q+PiBtX2xvY2tSZXF1ZXN0UXVldWVNYXA7CisgICAg
RmFzdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hlbGRMb2Nr
czsKIH07CiAKIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpMb2NhbFdlYkxvY2tSZWdpc3RyeSgpID0g
ZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBmODIyZTJiODMxMTRmYjQwNzQ2MGIyNDgw
Y2JmNGQ2NjQyYzYwM2VhLi5jNzdkZDVlYWM3MDFlMWMzYmIxOTM5YmM5MDk1ZGE5NDUyZDAwOTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9X
b3JrbGV0VGhyZWFkLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTgxLDcgKzgy
LDcgQEAgcHJpdmF0ZToKIAogICAgIHNpemVfdCBtX2N1cnJlbnRGcmFtZSB7IDAgfTsKICAgICBj
b25zdCBmbG9hdCBtX3NhbXBsZVJhdGU7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxKU0F1
ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdG9yPj4gbV9wcm9jZXNzb3JDb25zdHJ1Y3Rvck1h
cDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxKU0F1
ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdG9yPj4gbV9wcm9jZXNzb3JDb25zdHJ1Y3Rvck1h
cDsKICAgICBMb2NrIG1fcHJvY2Vzc29yc0xvY2s7CiAgICAgV2Vha0hhc2hTZXQ8QXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yLCBXVEY6OkVtcHR5Q291bnRlciwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fz
c2VydGlvbnM6Ok5vPiBtX3Byb2Nlc3NvcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3Nv
cnNMb2NrKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3Ry
dWN0aW9uRGF0YT4gbV9wZW5kaW5nUHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXgg
ZDViNWE2MzMxZmUxYTJiN2Y5MzZhY2Y5ZmJmMGQzZTViMjZiYzM3My4uM2JkMmIwMzg5ZjE2YjE4
ODI5ZDYzYjQ2NWRkZTUyMGM3MTdjY2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKICNpbmNsdWRl
IDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAKIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkBAIC04Niw3ICs4Nyw3IEBAIHByaXZh
dGU6CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7CiAgICAgTG9jayBtX3Byb2Nlc3NMb2Nr
OwogICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IG1fcHJvY2Vzc29yOyAvLyBTaG91
bGQgb25seSBiZSB1c2VkIG9uIHRoZSByZW5kZXJpbmcgdGhyZWFkLgotICAgIEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsK
KyAgICBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsKICAgICBUaHJl
YWQqIG1fd29ya2xldFRocmVhZCB7IG51bGxwdHIgfTsKIAogICAgIC8vIEtlZXBzIHRoZSByZWZl
cmVuY2Ugb2YgQXVkaW9CdXMgb2JqZWN0cyBmcm9tIEF1ZGlvTm9kZUlucHV0IGFuZCBBdWRpb05v
ZGVPdXRwdXQgaW4gb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCAyODI0MDgyNWIyODRlN2Iw
ODYzZDIyMDY5ZmQ4OGY0ZWVmNjRlOGUxLi5jYjdlMmUzOTk5YjBkMjExYzY5N2YzNTdlYjhlODI3
OWRiMzQ4MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBK
U0Zsb2F0MzJBcnJheSogY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoSlNHbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgdW5zCiAgICAgcmV0dXJuIGpzQXJyYXk7CiB9CiAKLXN0YXRpYyBKU09iamVj
dCogY29uc3RydWN0RnJvemVuS2V5VmFsdWVPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlv
RmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCkKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0
RnJvemVuS2V5VmFsdWVPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
LCBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQogewogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiBwbGFpbk9i
amVjdFN0cnVjdHVyZSA9IEpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgJmdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpLCAwKTsKQEAgLTE1OSw3ICsx
NTksNyBAQCBzdGF0aWMgYm9vbCBjb3B5RGF0YUZyb21CdXNlc1RvSlNBcnJheShKU0dsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0bwogICAgIHJldHVybiB0cnVlOwogfQogCi1z
dGF0aWMgYm9vbCBjb3B5RGF0YUZyb21QYXJhbWV0ZXJNYXBUb0pTT2JqZWN0KFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIEpTT2JqZWN0KiBqc09i
amVjdCkKK3N0YXRpYyBib29sIGNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmplY3QoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBNZW1vcnlDb21wYWN0TG9v
a3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9h
dEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBKU09iamVjdCoganNPYmplY3QpCiB7CiAgICAgaWYg
KCFqc09iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjE4LDcgKzIxOCw3IEBAIEF1
ZGlvV29ya2xldFByb2Nlc3Nvcjo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yKEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlJiBnbG9iYWxTY29wCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiB9CiAK
LXZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiBhcmdz
LCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRp
b0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCkKK3ZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiBhcmdzLCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1
ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQogewogICAgIC8vIEZvciBw
ZXJmb3JtYW5jZSByZWFzb25zLCB3ZSBjYWNoZSB0aGUgYXJyYXlzIHBhc3NlZCB0byBKUyBhbmQg
cmVjb25zdHJ1Y3QgdGhlbSBvbmx5IHdoZW4gdGhlIHRvcG9sb2d5IGNoYW5nZXMuCiAgICAgaWYg
KCFjb3B5RGF0YUZyb21CdXNlc1RvSlNBcnJheShnbG9iYWxPYmplY3QsIGlucHV0cywgdG9KU0Fy
cmF5KG1fanNJbnB1dHMpKSkKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEF1ZGlvV29ya2xldFBy
b2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplYwogICAgIGFyZ3MuYXBwZW5kKG1fanNQYXJhbVZhbHVlcy5nZXRWYWx1ZSgpKTsKIH0KIAot
Ym9vbCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxB
dWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3Qg
SGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1W
YWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKQorYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNz
b3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3Rv
cjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+
JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiB7CiAgICAgLy8gSGVhcCBh
bGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1h
bmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZv
bGxvd2luZyBhbGxvY2F0aW9uKHMpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKaW5kZXggN2QyNTZlYTU1N2JiODY2
YzE1MWM3MzQ4MzAyYzJkMTEwOTNmYjM5OC4uM2NmOWNmZjBhNDIzMjNhZWJkMTI2MWU1YjNhYjRk
MzY5MmNlZmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBA
IC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9y
dC5nZXQoKTsgfQogCi0gICAgYm9vbCBwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9C
dXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVz
TWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbik7CisgICAgYm9vbCBwcm9jZXNzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1
dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcs
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wm
IHRocmV3RXhjZXB0aW9uKTsKIAogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGpzSW5wdXRz
V3JhcHBlcigpIHsgcmV0dXJuIG1fanNJbnB1dHM7IH0KICAgICBKU1ZhbHVlSW5XcmFwcGVkT2Jq
ZWN0JiBqc091dHB1dHNXcmFwcGVyKCkgeyByZXR1cm4gbV9qc091dHB1dHM7IH0KQEAgLTY5LDcg
KzcwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xldFBy
b2Nlc3NvcihBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSYsIGNvbnN0IEF1ZGlvV29ya2xldFByb2Nl
c3NvckNvbnN0cnVjdGlvbkRhdGEmKTsKLSAgICB2b2lkIGJ1aWxkSlNBcmd1bWVudHMoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYs
IGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlv
QnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKTsKKyAgICB2b2lkIGJ1aWxkSlNBcmd1bWVu
dHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8
UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9i
aW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYg
cGFyYW1WYWx1ZXNNYXApOwogCiAgICAgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUmIG1fZ2xvYmFs
U2NvcGU7CiAgICAgU3RyaW5nIG1fbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggNGFmZmFjMzNlMzQyNGMzZmFiNWFh
NWIyYmVkMGQ3NDQ3NjcyMmZkNS4uNmUzYjg3ZjRlOGQxZDA3NmQ5OTQ2M2E5ZjdmN2NmMjg5MGUx
ODMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZl
TG9ja0FkYXB0ZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIApAQCAtMjIzLDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICBQZXJpb2RpY1dhdmUmIHBlcmlv
ZGljV2F2ZShPc2NpbGxhdG9yVHlwZSk7CiAKICAgICB2b2lkIGFkZEF1ZGlvUGFyYW1EZXNjcmlw
dG9ycyhjb25zdCBTdHJpbmcmIHByb2Nlc3Nvck5hbWUsIFZlY3RvcjxBdWRpb1BhcmFtRGVzY3Jp
cHRvcj4mJik7Ci0gICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1BhcmFtRGVz
Y3JpcHRvcj4+JiBwYXJhbWV0ZXJEZXNjcmlwdG9yTWFwKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJEZXNjcmlwdG9yTWFwOyB9CisgICAgY29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+PiYgcGFyYW1ldGVyRGVz
Y3JpcHRvck1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcDsgfQog
CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYpOwpA
QCAtMzQ1LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAKICAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRw
dXRQb3NpdGlvbjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJhbURlc2Ny
aXB0b3I+PiBtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+PiBtX3BhcmFt
ZXRlckRlc2NyaXB0b3JNYXA7CiAKICAgICAvLyBUaGVzZSBhcmUgY2FjaGVkIHBlciBhdWRpbyBj
b250ZXh0IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiBUaGV5IGNhbm5vdCBiZQogICAgIC8vIHN0
YXRpYyBiZWNhdXNlIHRoZXkgcmVseSBvbiB0aGUgc2FtcGxlIHJhdGUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IDAxOGRiYjk5YjE4
ZmI2N2I4YjBkYzA5Mzg4Mjc4MTdhYmRiMmM2MjQuLjUzZmJlMzIwNTI0ZWE0YTRmZDRmMWQzOWYy
Y2QyNDlkMDU2ODU3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0xODEsNyArMTgy
LDcgQEAgc3RhdGljIEhhc2hNYXA8RGF0YWJhc2VHVUlELCBIYXNoU2V0PERhdGFiYXNlKj4+JiBn
dWlkVG9EYXRhYmFzZU1hcCgpIFdURl9SRVFVSVIKIAogc3RhdGljIGlubGluZSBEYXRhYmFzZUdV
SUQgZ3VpZEZvck9yaWdpbkFuZE5hbWUoY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSkgV1RGX1JFUVVJUkVTX0xPQ0soZ3VpZExvY2spCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZUdVSUQ+PiBtYXA7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxT
dHJpbmcsIERhdGFiYXNlR1VJRD4+IG1hcDsKICAgICByZXR1cm4gbWFwLmdldCgpLmVuc3VyZSht
YWtlU3RyaW5nKG9yaWdpbiwgJy8nLCBuYW1lKSwgW10gewogICAgICAgICBzdGF0aWMgRGF0YWJh
c2VHVUlEIGxhc3RVc2VkR1VJRDsKICAgICAgICAgcmV0dXJuICsrbGFzdFVzZWRHVUlEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCmluZGV4IGE0ZjBjNzQ0NTIzNzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIyOWYuLmI5
ZDNjMzkyN2E3NTAwYzE5OGZmNzVhOGI2NmEzYzgxNjIwOGYzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAg
LTk4NCw3ICs5ODQsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVjb3JkRGVsZXRpbmdEYXRh
YmFzZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgYwogICAgIC8vIFdlIGRvbid0
IHVzZSBIYXNoTWFwOjplbnN1cmUgaGVyZSB0byBhdm9pZCBtYWtpbmcgYW4gaXNvbGF0ZWQgY29w
eSBvZiB0aGUgb3JpZ2luIGV2ZXJ5IHRpbWUuCiAgICAgYXV0byogbmFtZVNldCA9IG1fYmVpbmdE
ZWxldGVkLmdldChvcmlnaW4pOwogICAgIGlmICghbmFtZVNldCkgewotICAgICAgICBhdXRvIG93
bmVkU2V0ID0gbWFrZVVuaXF1ZTxIYXNoU2V0PFN0cmluZz4+KCk7CisgICAgICAgIGF1dG8gb3du
ZWRTZXQgPSBtYWtlVW5pcXVlPE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+
KCk7CiAgICAgICAgIG5hbWVTZXQgPSBvd25lZFNldC5nZXQoKTsKICAgICAgICAgbV9iZWluZ0Rl
bGV0ZWQuYWRkKG9yaWdpbi5pc29sYXRlZENvcHkoKSwgV1RGTW92ZShvd25lZFNldCkpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5oCmluZGV4IDU2ZGMxMzVlMjNhNzAzNmJlM2YwZDhmMjg0ZWExZmJiZjI1ZDFiMzMu
LmY0Mzk1OTgyZDhkZTFhMzc4OTkzZmNmNzA5ZDU1MjA3YzgzZTMxMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAt
MzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xNzcsNyArMTc3LDcgQEAgcHJpdmF0ZToKICAg
ICBEYXRhYmFzZU1hbmFnZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogCiAgICAgSGFz
aE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIHN0ZDo6dW5pcXVlX3B0cjxIYXNoQ291bnRlZFNldDxT
dHJpbmc+Pj4gbV9iZWluZ0NyZWF0ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3Vh
cmQpOwotICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8SGFz
aFNldDxTdHJpbmc+Pj4gbV9iZWluZ0RlbGV0ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFi
YXNlR3VhcmQpOworICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4+IG1fYmVpbmdEZWxldGVk
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9kYXRhYmFzZUd1YXJkKTsKICAgICBIYXNoU2V0PFNlY3Vy
aXR5T3JpZ2luRGF0YT4gbV9vcmlnaW5zQmVpbmdEZWxldGVkIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9kYXRhYmFzZUd1YXJkKTsKICAgICBib29sIGlzRGVsZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9y
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSkgV1RGX1JFUVVJ
UkVTX0xPQ0sobV9kYXRhYmFzZUd1YXJkKTsKICAgICB2b2lkIHJlY29yZENyZWF0aW5nRGF0YWJh
c2UoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lKSBXVEZfUkVR
VUlSRVNfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAppbmRleCBhNGU2OWI1MWM4NDcw
ZjQ4OGIxNjJjZTZhYjA4NjE0YWNmYWNkMjAwLi5jMjE0ZGNkMjdlMDkxMTgwOGU5ZTE0MmI4MTc4
ZGQ3YzM2MDI1OWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMTA3LDcg
KzEwOCw3IEBAIHByaXZhdGU6CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fYXR0cmli
dXRlQ2hhbmdlZENhbGxiYWNrOwogICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1faXNvbGF0ZWRX
b3JsZDsKICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+LCAxPiBtX2NvbnN0cnVjdGlvblN0YWNr
OwotICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9vYnNlcnZlZEF0dHJpYnV0ZXM7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9vYnNlcnZlZEF0dHJpYnV0
ZXM7CiAgICAgYm9vbCBtX2lzU2hhZG93RGlzYWJsZWQgOiAxOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBiODc4NGVhMTc0
ZmY3MWZiNTNiODFjMTE4NDYwNGEzYTJlOTI4NzhkLi5lOTJmNDVkOWM1ZThhNGE3YWU1MzliN2Qy
MzA4MTRhYTk4ZDQyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1VSTEhhc2guaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03Myw3ICs3NCw3IEBA
IHByaXZhdGU6CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBt
X2NvbnRleHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25z
ZVVSTE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFVSTD4g
bV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKICAgICBIYXNoU2V0PFJlZjxNb2R1bGVTY3Jp
cHRMb2FkZXI+PiBtX2xvYWRlcnM7CiAgICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOwogICAgIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIG1fc2hhZG93UmVhbG1HbG9iYWwgeyBudWxscHRyIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKaW5kZXggMDFlYzY0NDgzZWFh
NGQ5MjdlZGE2N2I3NzAzOWJjY2Y3ZTkzMjAxOC4uOTRmYzZlYWY2MTA3YjJkMDFlYWIzMDIwMmI4
N2I1M2M1MjU2YTc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1l
bnRSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0
cnkuaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2gu
aD4KIApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGdldChjb25z
dCBBdG9tU3RyaW5nJik7CiAgICAgdm9pZCB1cGdyYWRlKE5vZGUmIHJvb3QpOwogCi0gICAgSGFz
aE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4mIHByb21pc2VNYXAoKSB7IHJl
dHVybiBtX3Byb21pc2VNYXA7IH0KKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxB
dG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4mIHByb21pc2VNYXAoKSB7IHJldHVybiBt
X3Byb21pc2VNYXA7IH0KICAgICBib29sIGlzU2hhZG93RGlzYWJsZWQoY29uc3QgQXRvbVN0cmlu
ZyYgbmFtZSkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZFNoYWRvd1NldC5jb250YWlucyhuYW1l
KTsgfQogCiBwcml2YXRlOgpAQCAtNzYsOCArNzYsOCBAQCBwcml2YXRlOgogICAgIERPTVdpbmRv
dyYgbV93aW5kb3c7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8SlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlPj4gbV9uYW1lTWFwOwogICAgIEhhc2hNYXA8Y29uc3QgSlNDOjpKU09iamVjdCos
IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSo+IG1fY29uc3RydWN0b3JNYXA7Ci0gICAgSGFzaE1h
cDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wcm9taXNlTWFwOwotICAgIEhh
c2hTZXQ8QXRvbVN0cmluZz4gbV9kaXNhYmxlZFNoYWRvd1NldDsKKyAgICBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wcm9t
aXNlTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+IG1f
ZGlzYWJsZWRTaGFkb3dTZXQ7CiAKICAgICBib29sIG1fZWxlbWVudERlZmluaXRpb25Jc1J1bm5p
bmcgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXh0ZW5zaW9u
U3R5bGVTaGVldHMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5o
CmluZGV4IGRhOGIwYTk2OGNkOGFiMWQ1NzM0NmQ5ZGI4NmM5OTA3OWM0NDM3ZjQuLmNkMjQ4NTg5
NTdlZWU3MjNlMWZmODkyMzM0OWZhYTBmZjRkNWIzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
eHRlbnNpb25TdHlsZVNoZWV0cy5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiVXNlclN0
eWxlU2hlZXQuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2Mu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtOTUsOCArOTUsOCBAQCBwcml2
YXRlOgogICAgIFZlY3RvcjxVc2VyU3R5bGVTaGVldD4gbV9wYWdlU3BlY2lmaWNTdHlsZVNoZWV0
czsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgSGFzaE1hcDxTdHJpbmcs
IFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0ZW5zaW9uU2hlZXRzOwotICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25T
dHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0ZW5zaW9uU2VsZWN0b3JTaGVldHM7CisgICAgTWVtb3J5
Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4+IG1f
Y29udGVudEV4dGVuc2lvblNoZWV0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxl
U2hlZXQ+PiBtX2NvbnRlbnRFeHRlbnNpb25TZWxlY3RvclNoZWV0czsKICNlbmRpZgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IGQ5ODAyZmUyYmNhY2Ux
YjA4ZjU3YzM3NjdkMDVkZDM0YTgzOTA2MzMuLmRkNmU0ZWY2ZjgxMTc2ZDYxMWVlNGRkNDliNDVh
NzdmYWM0Y2Q0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAg
LTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC05MCw3ICs5MSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUoTm9kZSYgbm9kZSwgY29uc3QgSW5pdCYgaW5pdCkKICAgICBpZiAoaW5pdC5jaGFyYWN0
ZXJEYXRhT2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQogICAgICAgICBvcHRpb25zLmFkZChPcHRp
b25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogCi0gICAgSGFzaFNldDxBdG9tU3RyaW5n
PiBhdHRyaWJ1dGVGaWx0ZXI7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RI
YXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKICAgICBpZiAoaW5pdC5hdHRyaWJ1
dGVGaWx0ZXIpIHsKICAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluaXQuYXR0cmlidXRlRmls
dGVyLnZhbHVlKCkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXIuYWRkKHZhbHVlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCBkM2MxZmE2NmVkMmY1NTQ3ZjBiODA5YzY5MDdiYjQ1YzRmOWY1NGEzLi5jOGFmMmU4
MTkyZWVhMjM2OTkyMzg2MGMzMzU0N2U5NGI5MWNiOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zOCw3ICszOCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZl
ciwgTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFz
aFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQorTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihNdXRhdGlvbk9ic2VydmVyJiBv
YnNlcnZlciwgTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29u
c3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+JiBh
dHRyaWJ1dGVGaWx0ZXIpCiAgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogICAgICwgbV9ub2Rl
KG5vZGUpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKQEAgLTUzLDcgKzUzLDcgQEAgTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6fk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oKQog
ICAgIG1fb2JzZXJ2ZXItPm9ic2VydmF0aW9uRW5kZWQoKnRoaXMpOwogfQogCi12b2lkIE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmls
dGVyKQordm9pZCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpyZXNldE9ic2VydmF0aW9u
KE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29r
dXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQogewog
ICAgIHRha2VUcmFuc2llbnRSZWdpc3RyYXRpb25zKCk7CiAgICAgbV9vcHRpb25zID0gb3B0aW9u
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bi5oCmluZGV4IDc1YmIyN2MzNTE0MDJmNThmNGU3ODQ5NjU2MzBhYmI4ZTI5YjUxYjUuLjEyNjdm
MDEyZTY0N2Y2ZjhkZTlhZGFiYTM1YTg1MTA4ZjlhNzdiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtMzIsNyArMzIsNyBA
QAogCiAjaW5jbHVkZSAiR0NSZWFjaGFibGVSZWYuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2Vy
dmVyLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CkBAIC00
OCwxMCArNDgsMTAgQEAgY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oTXV0YXRpb25PYnNlcnZlciYsIE5vZGUmLCBN
dXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmli
dXRlRmlsdGVyKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKE11dGF0aW9uT2Jz
ZXJ2ZXImLCBOb2RlJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBh
Y3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVy
KTsKICAgICB+TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbigpOwogCi0gICAgdm9pZCByZXNl
dE9ic2VydmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOworICAgIHZvaWQgcmVzZXRPYnNlcnZhdGlvbihNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhv
b2RIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIHZvaWQgb2JzZXJ2
ZWRTdWJ0cmVlTm9kZVdpbGxEZXRhY2goTm9kZSYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNo
U2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsK
ICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Ry
YW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVz
LT5pc0VtcHR5KCk7IH0KQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Tm9k
ZT4gbV9ub2RlS2VwdEFsaXZlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hh
YmxlUmVmPE5vZGU+Pj4gbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2RlczsKICAgICBNdXRhdGlv
bk9ic2VydmVyT3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBtX2F0
dHJpYnV0ZUZpbHRlcjsKKyAgICBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hT
ZXQ8QXRvbVN0cmluZz4gbV9hdHRyaWJ1dGVGaWx0ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMThmYTkwMDYxNGVhNDZkZDQwN2I4MTE1NGQ3OTAy
ZDE2MDUwZmM0Mi4uYzJhNWJkYTgxNjJlZmMwYmFiMWE3MmIxMGE4NjhkMDc3Zjk5OWEzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcApAQCAtMjMxOSw3ICsyMzE5LDcgQEAgSGFzaE1hcDxSZWY8TXV0YXRpb25P
YnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBOb2RlOjpyZWdpc3RlcmVk
TXUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIE5vZGU6OnJlZ2lzdGVyTXV0YXRpb25P
YnNlcnZlcihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgTXV0YXRpb25PYnNlcnZlck9wdGlv
bnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKQor
dm9pZCBOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciYgb2Jz
ZXJ2ZXIsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBh
Y3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVy
KQogewogICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG51
bGxwdHI7CiAgICAgYXV0byYgcmVnaXN0cnkgPSBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU11dGF0
aW9uT2JzZXJ2ZXJEYXRhKCkucmVnaXN0cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAwZTRhMDA5NWE1ZTY5
NmQ5MjI3MDNiMTAyMTJmY2Q5MTE4ZDY3MzkyLi5iZGYxNjJlN2MyMWI1YzZkMzQzZmQ3NjFlMDc1
NWJkNmUwMWE2YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDx3
dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9VUkxIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtNTAw
LDcgKzUwMSw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFy
Z2V0RGF0YSgpIGZpbmFsOwogCiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMo
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0
ZU5hbWUpOwotICAgIHZvaWQgcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2
ZXImLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYg
YXR0cmlidXRlRmlsdGVyKTsKKyAgICB2b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihNdXRh
dGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IE1lbW9yeUNvbXBh
Y3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVy
KTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZl
cihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyVHJh
bnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRMb29wLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudExvb3AuY3BwCmluZGV4IGI5YzFjMTkyY2ZhNDJhMWZm
MWEyZWMzZGI5NWYwMGIxY2VkOWQ0ODAuLmE2MTMyY2IxMzU5MjY4ZmU3NzUzOGIxNjZhOWI3N2Qy
YTc2MDgyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudExvb3Au
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudExvb3AuY3BwCkBAIC0zNCwx
NCArMzQsMTUgQEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSA8
d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIYXNoTWFwPFN0cmluZywgV2luZG93RXZlbnRMb29w
Kj4mIHdpbmRvd0V2ZW50TG9vcE1hcCgpCitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8U3RyaW5nLCBXaW5kb3dFdmVudExvb3AqPiYgd2luZG93RXZlbnRMb29wTWFwKCkKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEhhc2hNYXA8U3RyaW5nLCBXaW5kb3dFdmVudExvb3AqPj4gbWFwOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdp
bmRvd0V2ZW50TG9vcCo+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKaW5kZXggMGIyOTFmNGI5ZDRjODRkMjc1M2I4OTFlZTE2NTJiNjdjMDRh
ZjNmYS4uZjI0ODliMWU0NWRjMGI4YWZlYTlmMzgzMGU3Zjc5YTdjMzFlMzRlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRXcml0ZXJEYXRh
LmgiCisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlICJTY3JvbGxW
aWV3LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNraW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5w
dXRUeXBlLmgiCkBAIC02NjcsOCArNjY4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fb3Zlcndy
aXRlTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9pbnNlcnRlZEF0dGFjaG1lbnRJZGVudGlmaWVyczsK
LSAgICBIYXNoU2V0PFN0cmluZz4gbV9yZW1vdmVkQXR0YWNobWVudElkZW50aWZpZXJzOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9pbnNlcnRlZEF0dGFjaG1l
bnRJZGVudGlmaWVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+
IG1fcmVtb3ZlZEF0dGFjaG1lbnRJZGVudGlmaWVyczsKICNlbmRpZgogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBtX21hcms7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggOTNhYThjYmE1
YjA4MzJlMWYzZWViMjFkZGJmMzQzMDhmNDZlZjFmMS4uYzFmZDNkNzhmNzE1MThhODdiZGUwZDk5
ZWMyN2E1ZTE1MGQwNmI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNzksNyAr
NzksNyBAQAogI2luY2x1ZGUgIldlZWtJbnB1dFR5cGUuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CiAKQEAgLTkw
LDcgKzkwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHR5cGVkZWYgYm9vbCAoU2V0
dGluZ3M6OipJbnB1dFR5cGVDb25kaXRpb25hbEZ1bmN0aW9uKSgpIGNvbnN0OwogdHlwZWRlZiBj
b25zdCBBdG9tU3RyaW5nJiAoKklucHV0VHlwZU5hbWVGdW5jdGlvbikoKTsKIHR5cGVkZWYgUmVm
PElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQm
KTsKLXR5cGVkZWYgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnBhaXI8SW5wdXRUeXBlQ29uZGl0
aW9uYWxGdW5jdGlvbiwgSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uPj4gSW5wdXRUeXBlRmFjdG9y
eU1hcDsKK3R5cGVkZWYgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoTWFwPEF0
b21TdHJpbmcsIHN0ZDo6cGFpcjxJbnB1dFR5cGVDb25kaXRpb25hbEZ1bmN0aW9uLCBJbnB1dFR5
cGVGYWN0b3J5RnVuY3Rpb24+PiBJbnB1dFR5cGVGYWN0b3J5TWFwOwogCiB0ZW1wbGF0ZTxjbGFz
cyBUPiBzdGF0aWMgUmVmPElucHV0VHlwZT4gY3JlYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oCmluZGV4IDhhMzFlYTg1OThhNjAyMzQwY2E0
YTE5N2Y3Yjk2NGU4ZGE1MmQzYzAuLmIxODNiYmUzMDk5NDg4YzQ5NzgyNDIwYmZmMzk5YjMwZmQ0
OWYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRp
dFJlc291cmNlc09iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBdWRpdFJlc291cmNlc09iamVjdC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTkwLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBJbnNwZWN0b3JB
dWRpdENhY2hlZFN0eWxlU2hlZXRDbGllbnQgOiBwdWJsaWMgQ2FjaGVkU3R5bGVTaGVldENsaWVu
dCB7IH07CiAgICAgSW5zcGVjdG9yQXVkaXRDYWNoZWRTdHlsZVNoZWV0Q2xpZW50IG1fY2FjaGVk
U3R5bGVTaGVldENsaWVudDsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+
IG1fcmVzb3VyY2VzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywg
Q2FjaGVkUmVzb3VyY2UqPiBtX3Jlc291cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2Vz
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEu
Y3BwCmluZGV4IDMyOGViZTdlNjQxMTk1ZTVhNDY4NTAyNzU1OTEwZjc4YzQ4YjU4ZDguLjBiNzRk
NTZjZjM1NjI2N2EzODY5OWE5ODgwMjYyMjI4NzU0Y2NhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcApAQCAtMzE5LDkgKzMxOSwx
MCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpjbGVhcihzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gcHJlc2VydmVkTG9hZGVySWQpCiAgICAgaWYgKCFwcmVzZXJ2ZWRMb2FkZXJJZCkKICAgICAg
ICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcC5jbGVhcigpOwogICAgIGVsc2UgewotICAg
ICAgICBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLnJlbW92ZUlmKFtsb2FkZXJJZCA9ICpw
cmVzZXJ2ZWRMb2FkZXJJZF0gKGF1dG8mIGVudHJ5KSB7Ci0gICAgICAgICAgICByZXR1cm4gZW50
cnkudmFsdWUtPmxvYWRlcklkKCkgIT0gbG9hZGVySWQ7Ci0gICAgICAgIH0pOworICAgICAgICBh
dXRvIGRhdGFUb0tlZXAgPSBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLnRha2UoKnByZXNl
cnZlZExvYWRlcklkKTsKKyAgICAgICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcC5jbGVh
cigpOworICAgICAgICBpZiAoZGF0YVRvS2VlcCkKKyAgICAgICAgICAgIG1fcmVxdWVzdElkVG9S
ZXNvdXJjZURhdGFNYXAuYWRkKCpwcmVzZXJ2ZWRMb2FkZXJJZCwgV1RGTW92ZShkYXRhVG9LZWVw
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0
d29ya1Jlc291cmNlc0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVz
b3VyY2VzRGF0YS5oCmluZGV4IGM4Y2VkMTJhNjQwN2ZkY2Q1NzRlY2MyYTc4MTllZGU2NjM4MDNk
YWMuLmEyNGFiZDg4MzY2MTdiYWFhMjg0Y2UxY2U1ZmQyYzIzMDkxYjdhNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCkBAIC0zMiw3ICsz
Miw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiU2hhcmVk
QnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xNTcsNyArMTU3
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGVuc3VyZUZyZWVTcGFjZShzaXplX3QpOwogCiAgICAg
RGVxdWU8U3RyaW5nPiBtX3JlcXVlc3RJZHNEZXF1ZTsKLSAgICBIYXNoTWFwPFN0cmluZywgc3Rk
Ojp1bmlxdWVfcHRyPFJlc291cmNlRGF0YT4+IG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXA7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8UmVzb3VyY2VEYXRhPj4gbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcDsKICAgICBzaXpl
X3QgbV9jb250ZW50U2l6ZSB7IDAgfTsKICAgICBzaXplX3QgbV9tYXhpbXVtUmVzb3VyY2VzQ29u
dGVudFNpemU7CiAgICAgc2l6ZV90IG1fbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFu
aW1hdGlvbkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFuaW1hdGlvbkFnZW50LmgKaW5kZXggNWM2MzEzZTkxNzZmMTk0NDg2YjZjZjg4Yzc4MTQ3ZGI0
YjUxYmNkYy4uYWRhOWY4Njk1YmQ4NDk3N2JjMzg0N2U5NThlNWFjYTI0YjFjYTgwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25B
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtOTEsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBQYWdlJiBtX2luc3BlY3Rl
ZFBhZ2U7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0aW9uKj4gbV9hbmltYXRpb25J
ZE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdlYkFuaW1h
dGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkQW5p
bWF0aW9uSWRzOwogICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdl
bnQuaAppbmRleCA0YzdjMjM5OTUyNzZmMzkyNWYyYjhmNTczY2RkNjhkZDBiZjU4NWU1Li45Njg3
YjRmNzg3NTM2NjM4OGM4MmRhOTAwNzA2YzA1ZTI2N2M1NWI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0z
NCw2ICszNCw4IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTQxLDE3ICsxNDMsMTcgQEAgcHJpdmF0
ZToKICAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXI7CiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwogCi0gICAgSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZh
czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNw
ZWN0b3JDYW52YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhczsKICAgICBWZWN0b3I8
U3RyaW5nPiBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVyczsKICAgICBUaW1lciBtX2NhbnZhc0Rl
c3Ryb3llZFRpbWVyOwogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIEhhc2hNYXA8U3RyaW5nLCBS
ZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4+IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJv
Z3JhbTsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtOwog
ICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVyczsKICAgICBUaW1l
ciBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lcjsKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCiAKLSAg
ICBIYXNoU2V0PFN0cmluZz4gbV9yZWNvcmRpbmdDYW52YXNJZGVudGlmaWVyczsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fcmVjb3JkaW5nQ2FudmFzSWRlbnRp
ZmllcnM7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gbV9yZWNvcmRpbmdBdXRvQ2FwdHVy
ZUZyYW1lQ291bnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAppbmRleCAwZThlMmI2YWEzOTJm
OTAwYjJhZDJmZjZhMjU5ZjE5M2M3ODUzYTNiLi5lMDgzYzhiNGQ5OWQyOTFlYjRiZGQzODQwNDk1
ZjJkOTE5NjBmMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7
CkBAIC05OCwxMyArOTksMTMgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpET01E
ZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogICAgIEluc3Bl
Y3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKIAot
ICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV9saXN0ZW5lckJyZWFr
cG9pbnRzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPEpT
Qzo6QnJlYWtwb2ludD4+IG1fbGlzdGVuZXJCcmVha3BvaW50czsKICAgICBSZWZQdHI8SlNDOjpC
cmVha3BvaW50PiBtX3BhdXNlT25BbGxJbnRlcnZhbHNCcmVha3BvaW50OwogICAgIFJlZlB0cjxK
U0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbExpc3RlbmVyc0JyZWFrcG9pbnQ7CiAgICAgUmVm
UHRyPEpTQzo6QnJlYWtwb2ludD4gbV9wYXVzZU9uQWxsVGltZW91dHNCcmVha3BvaW50OwogCi0g
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3VybFRleHRCcmVha3Bv
aW50czsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fdXJsUmVn
ZXhCcmVha3BvaW50czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcs
IFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3VybFRleHRCcmVha3BvaW50czsKKyAgICBNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3Vy
bFJlZ2V4QnJlYWtwb2ludHM7CiAgICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9wYXVzZU9u
QWxsVVJMc0JyZWFrcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCmluZGV4IDZkZTc0NmUxN2Q2
ZWI3OTZmMTdhNmJjZTMyMmY1Y2EwODA3NjMxNzguLjE2NGVjYmUzMWIzYjA3NWNlZTU0NDVlMGEy
YmRkNTIyMmI2OWY4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkRhdGFiYXNlRnJvbnRlbmREaXNw
YXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpEYXRh
YmFzZUJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogCi0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlPj4gbV9yZXNvdXJjZXM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVj
dG9yRGF0YWJhc2VSZXNvdXJjZT4+IG1fcmVzb3VyY2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmgKaW5kZXggNzJmNDIzZmY2MTI3N2VlZjRiZDM1NjMyOGM0NmQz
YmQ5MTMxZmY2NS4uYjk1NmNlZTZhMTdhMzdlY2RkN2VjZDM0MmYxMWM2ZGMxNDVjNDAzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3Jr
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5l
dHdvcmtBZ2VudC5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
UmVndWxhckV4cHJlc3Npb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBAIC0y
MjUsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUmVz
b3VyY2VzRGF0YT4gbV9yZXNvdXJjZXNEYXRhOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gbV9leHRyYVJlcXVlc3RIZWFkZXJzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBtX2V4dHJhUmVxdWVzdEhlYWRlcnM7CiAgICAgSGFzaFNldDxS
ZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+IG1faGlkZGVuUmVxdWVzdElkZW50aWZpZXJzOwogCiAg
ICAgc3RydWN0IEludGVyY2VwdCB7CkBAIC0yNDMsOCArMjQ0LDggQEAgcHJpdmF0ZToKICAgICAg
ICAgfQogICAgIH07CiAgICAgVmVjdG9yPEludGVyY2VwdD4gbV9pbnRlcmNlcHRzOwotICAgIEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0ludGVyY2VwdFJlcXVlc3Q+PiBt
X3BlbmRpbmdJbnRlcmNlcHRSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlx
dWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXNwb25zZT4+IG1fcGVuZGluZ0ludGVyY2VwdFJlc3Bv
bnNlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxQZW5kaW5nSW50ZXJjZXB0UmVxdWVzdD4+IG1fcGVuZGluZ0ludGVyY2VwdFJlcXVl
c3RzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlx
dWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXNwb25zZT4+IG1fcGVuZGluZ0ludGVyY2VwdFJlc3Bv
bnNlczsKIAogICAgIC8vIEZJWE1FOiBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgc2hvdWxkIG5vdCBi
ZSBhd2FyZSBvZiBzdHlsZSByZWNhbGN1bGF0aW9uLgogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I+IG1fc3R5bGVSZWNhbGN1bGF0aW9uSW5pdGlhdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQ
YWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFn
ZUFnZW50LmgKaW5kZXggM2Q1ZTU2NmRiZTBjNWVjMTFkOWU4ZGY2N2ZjZjBhNzA5ODhhMmY4Zi4u
NzM0MjRjMmQzYjJhZDk4ODlhNTY2ZmY2MWZkODZhNTBjOTkxNDc5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0z
Niw3ICszNiw3IEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTY3LDcg
KzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGSVhNRTogTWFrZSBhIFdlYWtIYXNoTWFwIGFu
ZCB1c2UgaXQgZm9yIG1fZnJhbWVUb0lkZW50aWZpZXIgYW5kIG1fbG9hZGVyVG9JZGVudGlmaWVy
LgogICAgIEhhc2hNYXA8RnJhbWUqLCBTdHJpbmc+IG1fZnJhbWVUb0lkZW50aWZpZXI7Ci0gICAg
SGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8RnJhbWU+PiBtX2lkZW50aWZpZXJUb0ZyYW1lOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgV2Vha1B0cjxGcmFtZT4+IG1f
aWRlbnRpZmllclRvRnJhbWU7CiAgICAgSGFzaE1hcDxEb2N1bWVudExvYWRlciosIFN0cmluZz4g
bV9sb2FkZXJUb0lkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50T3ZlcnJpZGU7CiAg
ICAgU3RyaW5nIG1fZW11bGF0ZWRNZWRpYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCBlMWJiZDhmOTQ2ZTQx
ZjMwMWE4ZmY4N2Y3NGFmZTM5OWQ2MWZlYzI4Li42MjFhOWYzNTIwNGMzMGU2MGMxMzI1OTFjN2U1
YTM2Mjg1NjgxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
V29ya2VySW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8SW5zcGVjdG9yOjpXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hl
cjsKIAogICAgIFBhZ2UmIG1fcGFnZTsKLSAgICBIYXNoTWFwPFN0cmluZywgV2Vha1B0cjxXb3Jr
ZXJJbnNwZWN0b3JQcm94eT4+IG1fY29ubmVjdGVkUHJveGllczsKKyAgICBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8V29ya2VySW5zcGVjdG9yUHJveHk+PiBt
X2Nvbm5lY3RlZFByb3hpZXM7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggMzFjZjc4Y2E1YjE0
MzU1MWEzYmE3NTAyM2FmY2E1NDNmY2U0OTQzNC4uMmE1YmYyM2YzODU0OTNjMGJjMjNhZjM5MzEy
MDZjOTFiZWNhMjQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0yNTE0LDcgKzI1MTQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb250ZW50RmlsdGVy
SGFuZGxlUHJvdmlzaW9uYWxMb2FkRmFpbHVyZShjb25zdCBSZXNvdXJjZUVycgogCiB2b2lkIERv
Y3VtZW50TG9hZGVyOjpzZXRBY3RpdmVDb250ZW50UnVsZUxpc3RBY3Rpb25QYXR0ZXJucyhjb25z
dCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4+JiBwYXR0ZXJucykKIHsKLSAgICBIYXNo
TWFwPFN0cmluZywgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4+IHBhcnNlZFBhdHRlcm5N
YXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8VXNl
ckNvbnRlbnRVUkxQYXR0ZXJuPj4gcGFyc2VkUGF0dGVybk1hcDsKIAogICAgIGZvciAoYXV0byYg
cGFpciA6IHBhdHRlcm5zKSB7CiAgICAgICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+
IHBhdHRlcm5WZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4
IGM2NDUwZDUwNzJkMGVmZDA0MzBiNmQzZTU0MjBkMmQyYjNlOTQzY2IuLmU5YzhiNjRmNDkwNTI0
YzMyMTYyYjlhMDkwMDA0OWQ3MGVlZGQyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5oCkBAIC01NSw2ICs1NSw4IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05f
TUFOSUZFU1QpCkBAIC02MzMsNyArNjM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBtX3BhcnNlZEFyY2hpdmVEYXRhOwogI2VuZGlmCiAKLSAgICBIYXNoU2V0PFN0cmlu
Zz4gbV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoU2V0PFN0cmluZz4gbV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0OwogICAgIFZlY3Rv
cjxSZXNvdXJjZVJlcXVlc3Q+IG1fcmVzb3VyY2VzTG9hZGVkRnJvbU1lbW9yeUNhY2hlRm9yQ2xp
ZW50Tm90aWZpY2F0aW9uOwogICAgIAogICAgIFN0cmluZyBtX2NsaWVudFJlZGlyZWN0U291cmNl
Rm9ySGlzdG9yeTsKQEAgLTY4MCw4ICs2ODIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U3R5
bGVTaGVldENvbnRlbnRzPj4gbV9wZW5kaW5nTmFtZWRDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVl
dHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJf
dD4+PiBtX3BlbmRpbmdDb250ZW50RXh0ZW5zaW9uRGlzcGxheU5vbmVTZWxlY3RvcnM7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U3R5bGVTaGVldENv
bnRlbnRzPj4gbV9wZW5kaW5nTmFtZWRDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldHM7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgdWludDMyX3Q+Pj4gbV9wZW5kaW5nQ29udGVudEV4dGVuc2lvbkRpc3BsYXlOb25lU2Vs
ZWN0b3JzOwogI2VuZGlmCiAgICAgU3RyaW5nIG1fY3VzdG9tVXNlckFnZW50OwogICAgIFN0cmlu
ZyBtX2N1c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzOwpAQCAtNjg5LDcgKzY5MSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lkZW1wb3RlbnRNb2RlQXV0b3NpemluZ09ubHlIb25v
cnNQZXJjZW50YWdlcyB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fY3VzdG9tTmF2aWdhdG9yUGxh
dGZvcm07CiAgICAgYm9vbCBtX3VzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQgeyB0cnVlIH07
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+PiBtX2Fj
dGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvblBhdHRlcm5zOworICAgIE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4+IG1fYWN0
aXZlQ29udGVudFJ1bGVMaXN0QWN0aW9uUGF0dGVybnM7CiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKICAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIG1f
ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSB7IERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDNmYWQ5
YTQ5MzA3MjVmODZiNTJmNzEzNWIyYmE2OWI5YTU1NDQ5ZjIuLjMwZjY2MWNjNWY5YTcyNTYyNjU3
YjU1MWMwNjA5NjZmMTI0MDUyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIwMCw4ICsyMDAsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgY2FuUmVxdWVzdEFmdGVyUmVkaXJlY3Rpb24oQ2FjaGVkUmVz
b3VyY2U6OlR5cGUsIGNvbnN0IFVSTCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIGNv
bnN0IFVSTCYgcHJlUmVkaXJlY3RVUkwpIGNvbnN0OwogICAgIGJvb2wgY2FuUmVxdWVzdEluQ29u
dGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNhbmRib3goQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNv
bnN0IFVSTCYpIGNvbnN0OwogCi0gICAgSGFzaFNldDxVUkw+IG1fdmFsaWRhdGVkVVJMczsKLSAg
ICBIYXNoU2V0PFVSTD4gbV9jYWNoZWRTVkdJbWFnZXNVUkxzOworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoU2V0PFVSTD4gbV92YWxpZGF0ZWRVUkxzOworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoU2V0PFVSTD4gbV9jYWNoZWRTVkdJbWFnZXNVUkxzOwogICAgIG11dGFibGUg
RG9jdW1lbnRSZXNvdXJjZU1hcCBtX2RvY3VtZW50UmVzb3VyY2VzOwogICAgIFdlYWtQdHI8RG9j
dW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgRG9jdW1lbnRMb2FkZXIqIG1fZG9jdW1lbnRMb2FkZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDU2MzMzMDBhZDNmMTFlMWJmNWQzYmUxZjUyZjU2NDljZDAxMjJj
ZDEuLjA1OGE5MWQ4ZTE2MDc2MjhkMzE3MjI4MDFkNjUzNWQ2MDc5ZjExNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5j
bHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KQEAg
LTExNjQsOCArMTE2NSw4IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ2xpZW50OjpJREJD
b25uZWN0aW9uVG9TZXJ2ZXI+IG1faWRiQ29ubmVjdGlvblRvU2VydmVyOwogCi0gICAgSGFzaFNl
dDxTdHJpbmc+IG1fc2VlblBsdWdpbnM7Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlh
RW5naW5lczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fc2Vl
blBsdWdpbnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX3Nl
ZW5NZWRpYUVuZ2luZXM7CiAKICAgICB1bnNpZ25lZCBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNh
bmRpZGF0ZXNDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2ZvcmJpZFByb21wdHNEZXB0aCB7
IDAgfTsKQEAgLTEyODcsNyArMTI4OCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8VXNlckNv
bnRlbnRVUkxQYXR0ZXJuPiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBWZWN0b3I8VXNl
clN0eWxlU2hlZXQ+IG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVjdGlvbjsKLSAgICBzdGQ6
Om9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nPj4gbV9hbGxvd2VkTmV0d29ya0hvc3RzOworICAgIHN0
ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmlu
Zz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBib29sIG1faXNUYWtpbmdTbmFwc2hvdHNG
b3JBcHBsaWNhdGlvblN1c3BlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9sb2Fkc1N1YnJl
c291cmNlcyB7IHRydWUgfTsKICAgICBib29sIG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgeyB0
cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZWQ5MjA1
MzQwM2Q1ZWUzYjJkNzNkNmNkZmMwMWMwMDRkYmRmNmI2OC4uY2Q1YWNlY2UyNzk1ZDlkYzRiMDc2
NmQyYzZkNDEyY2M1ZjIzMmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uaApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBz
aG91bGQgYmUgYWxsIGJlIFNldHRpbmdzLgogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0
cnVlIH07Ci0gICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWROZXR3b3Jr
SG9zdHM7CisgICAgc3RkOjpvcHRpb25hbDxNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9v
ZEhhc2hTZXQ8U3RyaW5nPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBib29sIHVzZXJTY3Jp
cHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsgdHJ1ZSB9OwogICAgIFNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiAgICAgYm9v
bCBodHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJl
Y3RpdmUuaAppbmRleCBkOTkxNDgxZmFjOTVkYjVmODU0MTQwMWYwYjcwMTQwN2IyMDIxOTNiLi43
Y2JmZmZlNjYzNWM5Mjk4Y2I5NjEyOWI1MjgwOTUzMWVlZThhYzcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJlY3Rp
dmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lN
ZWRpYUxpc3REaXJlY3RpdmUuaApAQCAtMjcsNyArMjcsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmUuaCIKLSNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQz
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwog
Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fcGx1Z2luVHlwZXM7CisgICAgTWVtb3J5Q29tcGFjdExv
b2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9wbHVnaW5UeXBlczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3Nw
L0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaAppbmRleCBjYjZhNTg4MGI4MDg1
YzA2MmUyYzkwZTViNDU5ZTMzODEzMjc2NGQzLi4wOTkzMzkwNGRlNzc4YjI5YjE1MTViNmM3Yzhm
OWY4NWU4YmNkZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oCkBAIC0yOSw4ICsyOSw4IEBACiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5
UG9saWN5SGFzaC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZS5oIgot
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3kmIG1fcG9saWN5
OwogICAgIFZlY3RvcjxDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2U+IG1fbGlzdDsKLSAgICBI
YXNoU2V0PFN0cmluZz4gbV9ub25jZXM7CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jp
bkhvb2RIYXNoU2V0PFN0cmluZz4gbV9ub25jZXM7CiAgICAgSGFzaFNldDxDb250ZW50U2VjdXJp
dHlQb2xpY3lIYXNoPiBtX2hhc2hlczsKICAgICBPcHRpb25TZXQ8Q29udGVudFNlY3VyaXR5UG9s
aWN5SGFzaEFsZ29yaXRobT4gbV9oYXNoQWxnb3JpdGhtc1VzZWQ7CiAgICAgU3RyaW5nIG1fZGly
ZWN0aXZlTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNj
aGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJl
Z2lzdHJ5LmNwcAppbmRleCA0M2MwM2JlZTg0MTczYTAyMmUxODQ2MWQ4MGI4ODVjMWJmOTAyOGRm
Li4yNTcyYjdhZjAzNjM5NzU5MDA0NjFjNWQwMGI2YzFhODA5YjQ0NmQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhv
b2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgogCiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQpAQCAtMjM1LDEwICsyMzYsMTAgQEAgdm9pZCBMZWdhY3lTY2hlbWVS
ZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzTG9jYWwoY29uc3QgU3RyaW5nJiBz
Y2hlbWUKICAgICBsb2NhbFVSTFNjaGVtZXMoKS5yZW1vdmUoc2NoZW1lKTsKIH0KIAotc3RhdGlj
IEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1lc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoKSBXVEZfUkVR
VUlSRVNfTE9DSyhzY2hlbWVSZWdpc3RyeUxvY2spCitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1lc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoKSBXVEZf
UkVRVUlSRVNfTE9DSyhzY2hlbWVSZWdpc3RyeUxvY2spCiB7CiAgICAgQVNTRVJUKHNjaGVtZVJl
Z2lzdHJ5TG9jay5pc0hlbGQoKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
U3RyaW5nPj4gc2V0OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9i
aW5Ib29kSGFzaFNldDxTdHJpbmc+PiBzZXQ7CiAgICAgcmV0dXJuIHNldC5nZXQoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCmluZGV4IGMwOWI2ZGUz
MWYyZWRlYmUwMTg4ZGM5YzQ2NmEyNzFlMWI4YjllMTQuLjQyNGM3MWM0YmUyY2U4MTUzOGE5MmU3
ZjVmYWVhMTdlOWMwNWMxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N0
YXRpY1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdGF0aWNQYXN0
ZWJvYXJkLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUGFz
dGVib2FyZC5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBtX2N1c3RvbURhdGE7Ci0gICAgSGFzaFNldDxTdHJp
bmc+IG1fbm9uRGVmYXVsdERhdGFUeXBlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aFNldDxTdHJpbmc+IG1fbm9uRGVmYXVsdERhdGFUeXBlczsKICAgICBQYXN0ZWJvYXJkOjpGaWxl
Q29udGVudFN0YXRlIG1fZmlsZUNvbnRlbnRTdGF0ZSB7IFBhc3RlYm9hcmQ6OkZpbGVDb250ZW50
U3RhdGU6Ok5vRmlsZU9ySW1hZ2VEYXRhIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMjYzOWYx
YmQ5ZDlkNGIzYWY4MmJkMDYwOTdhYWFjYzI1NjFjODU4My4uNzhiZjNjMzFmN2U0YThhZmM5ZGU0
NjhjZjVjYmQ4NzA4MGJkNDQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtNDQsNiArNDQsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNo
Lmg+CiAKQEAgLTE5MCw3ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNBdWRpbyB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKIAotICAgIEhhc2hNYXA8
QXRvbVN0cmluZywgVW5pcXVlUmVmPFRyYWNrQnVmZmVyPj4gbV90cmFja0J1ZmZlck1hcDsKKyAg
ICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBVbmlxdWVSZWY8VHJh
Y2tCdWZmZXI+PiBtX3RyYWNrQnVmZmVyTWFwOwogCiAgICAgU291cmNlQnVmZmVyQXBwZW5kTW9k
ZSBtX2FwcGVuZE1vZGUgeyBTb3VyY2VCdWZmZXJBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcAppbmRleCBiZTFiNmM0YTRlYjE3NjRlNGU1ZDM2MWZiOWJmOTI2M2YyM2Vl
NzY2Li4yMTVkMDUwNjhmYTg2ZGEwYjg5NTA2M2M5NzViZWFlZGU2ZTZhMzBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRi5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MjA2LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiog
bV9jdXJyZW50VGV4dFRyYWNrOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVH
QVRFKQotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmV0YWluUHRyPEFWQ0ZBc3NldFJlc291
cmNlTG9hZGluZ1JlcXVlc3RSZWY+Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7CisgICAgTWVtb3J5
Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmV0YWluUHRyPEFWQ0ZBc3Nl
dFJlc291cmNlTG9hZGluZ1JlcXVlc3RSZWY+Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7CiAgICAg
QVZDRkFzc2V0UmVzb3VyY2VMb2FkZXJDYWxsYmFja3MgbV9yZXNvdXJjZUxvYWRlckNhbGxiYWNr
czsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA5OWVkN2UxNGU1ODgzOGVh
NTk2NWExODAyZmJkYzZiNTBjZjA3MGZjLi4wY2M5ZDNlMDUxZDNkODljOTFlNTZhYTZlYjIyN2Qx
YjRlYTkzYThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgiCiAjaW5jbHVkZSA8Q29yZU1l
ZGlhL0NNVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hNYXAuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0SW1hZ2VHZW5lcmF0b3I7CiBPQkpD
X0NMQVNTIEFWQXNzZXRUcmFjazsKQEAgLTM4Nyw4ICszODcsOCBAQCBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CiAgICAgSGFzaE1hcDxSZXRhaW5Q
dHI8Q0ZUeXBlUmVmPiwgUmVmUHRyPFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcj4+IG1fcmVzb3Vy
Y2VMb2FkZXJNYXA7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0ZT4gbV9s
b2FkZXJEZWxlZ2F0ZTsKLSAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPEFWQXNzZXRSZXNv
dXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9rZXlVUklUb1JlcXVlc3RNYXA7Ci0gICAgSGFzaE1hcDxT
dHJpbmcsIFJldGFpblB0cjxBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdD4+IG1fc2Vzc2lv
bklEVG9SZXF1ZXN0TWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmlu
ZywgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9rZXlVUklUb1Jl
cXVlc3RNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZXRh
aW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+PiBtX3Nlc3Npb25JRFRvUmVxdWVz
dE1hcDsKIAogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0PiBtX2xlZ2li
bGVPdXRwdXQ7CiAKQEAgLTQwMyw3ICs0MDMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJbmJh
bmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY+IG1fbWV0YWRhdGFUcmFjazsKICNlbmRpZgog
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbmJhbmRDaGFwdGVyVHJhY2tQcml2YXRlQVZG
T2JqQz4+IG1fY2hhcHRlclRyYWNrczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxJbmJhbmRDaGFwdGVyVHJhY2tQcml2YXRlQVZGT2JqQz4+IG1fY2hh
cHRlclRyYWNrczsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmIFBM
QVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRl
eHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IGM0YTMxYmU1NWM1M2U5NGRkY2Y1MTQ4
ZTVkM2E1Y2FlODkzMzI1ZGYuLjlmNWUyMjAzMDk5MDAyYjNmZWQ4YmMwZmYzMzU0YWUxNTA3OGI0
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9M
b2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBPQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwogT0JKQ19DTEFTUyBXZWJSb290U2Ft
cGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI7CkBAIC0yNDMsOCArMjQ0LDggQEAgcHJpdmF0
ZToKICAgICB9OwogICAgIEN1cnJlbnRGcmFtZVBhaW50ZXIgbV9pbWFnZVBhaW50ZXI7CiAKLSAg
ICBIYXNoTWFwPFN0cmluZywgUmVmPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBtX2F1
ZGlvVHJhY2tNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtPj4gbV92aWRlb1RyYWNrTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgUmVmPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBtX2F1ZGlv
VHJhY2tNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWY8
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbT4+IG1fdmlkZW9UcmFja01hcDsKIAogICAgIE1l
ZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGUgeyBNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlOjpFbXB0eSB9OwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlT
dGF0ZSB7IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCmluZGV4IDI2NjdjYWY2OTkyMTAwNTEyMmFlYmY1ZTAzMTIwZjZmOWZi
YjhkYTcuLjdlZjRhOTliMDQxYWY1YTQwNmZhMmExNmM1ZDJhNzhlMjdkYTQ1MDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTgyOSw3ICs4MjksNyBAQCBlbnVtIGNsYXNzIFRyYWNr
S2luZCB7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVD4KLXZvaWQgdXBkYXRlVHJhY2tz
T2ZLaW5kKEhhc2hNYXA8U3RyaW5nLCBSZWZUPiYgdHJhY2tNYXAsIFRyYWNrS2luZCB0cmFja0tp
bmQsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiBjdXJyZW50VHJhY2tzLCBSZWZUICgq
aXRlbUZhY3RvcnkpKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiksIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPHR5
cGVuYW1lIFJlZlQ6OlB0clRyYWl0czo6U3RvcmFnZVR5cGU+Ojp0eXBlPiwgaW50LCBUcmFja1N0
YXRlKT4mIGNvbmZpZ3VyZVRyYWNrKQordm9pZCB1cGRhdGVUcmFja3NPZktpbmQoTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZUPiYgdHJhY2tNYXAsIFRyYWNrS2luZCB0
cmFja0tpbmQsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiBjdXJyZW50VHJhY2tzLCBS
ZWZUICgqaXRlbUZhY3RvcnkpKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiksIGNvbnN0IEZ1bmN0
aW9uPHZvaWQoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2lu
dGVyPHR5cGVuYW1lIFJlZlQ6OlB0clRyYWl0czo6U3RvcmFnZVR5cGU+Ojp0eXBlPiwgaW50LCBU
cmFja1N0YXRlKT4mIGNvbmZpZ3VyZVRyYWNrKQogewogICAgIFZlY3RvcjxSZWZUPiByZW1vdmVk
VHJhY2tzOwogICAgIFZlY3RvcjxSZWZUPiBhZGRlZFRyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAppbmRleCBhY2FiYTMx
NGRkY2EwNTUzZDIwNzY2OGRjOGYxNWQ0NTZiNmRlNWU1Li5kOWU0ZWUwNGIwZmEyZjZmNDY4YmMw
MmI3ODE5MjJjMjYxYmVjOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9VVElSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvVVRJUmVnaXN0cnkuY3BwCkBAIC04MCw5ICs4MCw5IEBAIGNvbnN0IE1lbW9y
eUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBkZWZhdWx0U3VwcG9y
dGVkSW1hZ2VUeXBlCiAgICAgcmV0dXJuIGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGVzOwogfQog
Ci1IYXNoU2V0PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkKK01lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBh
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4gYWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXM7CiAgICAgcmV0dXJuIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElS
ZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVnaXN0
cnkuaAppbmRleCAxNGFiMjJiNGNjMjhlNzUxZGE1YTI4MzZjNzczYjdmNGUzYzkxNzc2Li4wNTZh
OWQ3ZTI5Njk1Yzc2M2YxMGEzMGI1MzJlZjJmYWE5YWQ0N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmgKQEAgLTMxLDcgKzMxLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGVzKCk7Ci1I
YXNoU2V0PFN0cmluZz4mIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCk7CitNZW1vcnlD
b21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlcygpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CiBXRUJD
T1JFX0VYUE9SVCBib29sIGlzU3VwcG9ydGVkSW1hZ2VUeXBlKGNvbnN0IFN0cmluZyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDlmOTBlYWEzODUzN2FkMDY4OGQ4NDNiM2Q4ZDgwYmIy
MmU3ODM2ODguLjI2NDFkZWUzOTZmOTllMmJmNDUzNTczMmNiOWFjZjgzYjllNTAyYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNv
cmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2luY2x1ZGUgPHd0Zi9jb2Nv
YS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCkBAIC05OTQsOCArOTk1LDggQEAg
cHJpdmF0ZToKICAgICB9CiAKICAgICBMb2NrIG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3Jz
TG9jazsKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEluc3RhbGxlZEZvbnRG
YW1pbHk+PiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9ycyBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzTG9jayk7Ci0gICAgSGFzaE1hcDxTdHJpbmcs
IEluc3RhbGxlZEZvbnQ+IG1fcG9zdFNjcmlwdE5hbWVUb0ZvbnREZXNjcmlwdG9yczsKKyAgICBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxJbnN0
YWxsZWRGb250RmFtaWx5Pj4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMgV1RGX0dVQVJE
RURfQllfTE9DSyhtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2spOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgSW5zdGFsbGVkRm9udD4gbV9wb3N0U2Ny
aXB0TmFtZVRvRm9udERlc2NyaXB0b3JzOwogICAgIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIG1f
YWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJh
c2VDb3JlVGV4dC5jcHAKaW5kZXggNTc2MmUwODkzZDk5M2I0MzliOTA1ODkyYjE2MjU2NzYwOWI1
YmQ1Yi4uMTEwMjI0M2NlZTYyMWMwMWRhMmE1NWRhYjMzODk4YWUyZjk0MDk0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFi
YXNlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcApAQCAtMjg5LDcgKzI4OSw3IEBAIFZl
Y3RvcjxSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4+IFN5c3RlbUZvbnREYXRhYmFzZUNv
cmVUZXh0OjpjYXNjYWRlTGlzdChjCiAgICAgcmV0dXJuIGNhc2NhZGVMaXN0KHN5c3RlbUZvbnRQ
YXJhbWV0ZXJzKGRlc2NyaXB0aW9uLCBjc3NGYW1pbHksIHN5c3RlbUZvbnRLaW5kLCBhbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyksIHN5c3RlbUZvbnRLaW5kKTsKIH0KIAotc3RhdGljIFN0cmluZyBn
ZW5lcmljRmFtaWx5KGNvbnN0IFN0cmluZyYgbG9jYWxlLCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgbWFwLCBDRlN0cmluZ1JlZiBjdEtleSkKK3N0YXRpYyBTdHJpbmcgZ2VuZXJpY0ZhbWlseShj
b25zdCBTdHJpbmcmIGxvY2FsZSwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+JiBtYXAsIENGU3RyaW5nUmVmIGN0S2V5KQogewogICAgIHJldHVybiBtYXAuZW5z
dXJlKGxvY2FsZSwgWyZdIHsKICAgICAgICAgYXV0byBkZXNjcmlwdG9yID0gYWRvcHRDRihDVEZv
bnREZXNjcmlwdG9yQ3JlYXRlRm9yQ1NTRmFtaWx5KGN0S2V5LCBsb2NhbGUuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgKaW5kZXgg
NWQzMzVmYzI0ZTc1MzE5ZDVhODAzM2Q1NDI5Y2ExMjdkNjE5ZGFmMi4uYzNiNTcxZGI5ZTI1MzY2
NTk5NWI4YzY5ZjVlODE4YTU2ODQ3MTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VD
b3JlVGV4dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9Db3JlVGV4
dFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hUcmFp
dHMuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgog
CkBAIC0xMTMsMTEgKzExNCwxMSBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxDYXNjYWRlTGlz
dFBhcmFtZXRlcnMsIFZlY3RvcjxSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4+LCBDYXNj
YWRlTGlzdFBhcmFtZXRlcnM6Okhhc2gsIFNpbXBsZUNsYXNzSGFzaFRyYWl0czxDYXNjYWRlTGlz
dFBhcmFtZXRlcnM+PiBtX3N5c3RlbUZvbnRDYWNoZTsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IG1fc2VyaWZGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3Nh
bnNTZXJpZmVyaWZGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2N1cnNp
dmVGYW1pbGllczsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2ZhbnRhc3lGYW1pbGll
czsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX21vbm9zcGFjZUZhbWlsaWVzOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3NlcmlmRmFt
aWxpZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IG1fc2Fuc1NlcmlmZXJpZkZhbWlsaWVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBtX2N1cnNpdmVGYW1pbGllczsKKyAgICBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9mYW50YXN5RmFtaWxpZXM7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fbW9ub3NwYWNl
RmFtaWxpZXM7CiB9OwogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFN5
c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0OjpDYXNjYWRlTGlzdFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2su
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KaW5kZXggMDU4
YjdlOWNmMTA1M2RlYTA1MGE4MjFmOTk4OWNjYzljZjk4Y2JmZS4uMDE4N2Y1YTMxZTgyNDY1ZWM5
N2I1ZjYxYTAzYTJlNmI0ZjU1ZGE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RocmVhZENoZWNrLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9U
aHJlYWRDaGVjay5tbQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0j
aW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Cisj
aW1wb3J0IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xMDEsNyArMTAxLDcg
QEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9u
LCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICBpZiAocm91bmQgPj0gTWF4aW11bVRocmVh
ZFZpb2xhdGlvblJvdW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBsb2dnZWRGdW5jdGlvbnM7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IGxvZ2dlZEZ1
bmN0aW9uczsKICAgICBzd2l0Y2ggKHRocmVhZFZpb2xhdGlvbkJlaGF2aW9yW3JvdW5kXSkgewog
ICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmgKaW5kZXggN2YyZWI0NWVmMTE4NmUwZjc1MWU3MzExMDg1OWZjMTEyYWQ2NjBkMi4uN2Rm
YTcxZTMyYmUyYzQ5YmJlZGNjNzQ0M2IwZTQ3MDcxMzg5YjVhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgK
QEAgLTM5LDkgKzM5LDkgQEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrSGFzaFNldC5oPgpAQCAtMTMzLDcgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hT
ZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogICAgIFN0cmluZyBtX2lkOwogICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlKiBtX2FjdGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07Ci0gICAgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrU2V0OwogICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZh
bHNlIH07CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUmVmPGNvbnN0IExvZ2dlcj4g
bV9sb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Js
b2JSZWdpc3RyeUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5SW1wbC5oCmluZGV4IGVlYmQ4NmMzMjJjZjc1NTNjNWE0ZjMyNzZhZTg3ZGI4MjNiZDQ5
ZTYuLjJhMWIyM2VkMWNkODc5Yjk0YmFlOGI3YzQ1MDBiNzY0ZGMxMTVmMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCkBAIC0z
NCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNpbmNsdWRlICJCbG9iUmVnaXN0
cnkuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBhZGRCbG9iRGF0YShjb25zdCBTdHJpbmcmIHVybCwgUmVmUHRyPEJsb2JEYXRhPiYmKTsKIAog
ICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gbV9ibG9iUmVmZXJlbmNlczsKLSAgICBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPEJsb2JEYXRhPj4gbV9ibG9iczsKKyAgICBNZW1vcnlDb21wYWN0Um9i
aW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxCbG9iRGF0YT4+IG1fYmxvYnM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmgKaW5kZXggZDBlMTZmN2JiNTI1OTNjNzk5MmZhYzlk
ZDJjZmI5NTc5Zjg1OGQzYi4uNDBlOWEwMWYwMDFkMDk0ZTY4NWIwM2NiNzRjZDA0YzdlNzY1Y2Zi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFs
U3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bFN0b3JhZ2UuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZUhh
c2guaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIEhhc2hNYXA8c3RkOjpwYWlyPFN0cmluZyAvKiBwYXJ0aXRpb25OYW1lICovLCBQ
cm90ZWN0aW9uU3BhY2U+LCBDcmVkZW50aWFsPiBtX3Byb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlh
bE1hcDsKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9vcmlnaW5zV2l0aENyZWRlbnRpYWxzOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9vcmlnaW5zV2l0aENyZWRl
bnRpYWxzOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvdGVjdGlvblNwYWNlPiBQ
YXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOwogICAgIFBhdGhUb0RlZmF1bHRQcm90ZWN0
aW9uU3BhY2VNYXAgbV9wYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmgKaW5kZXggMzMwOTk0NWJkNDlhNjkwYTY1ZjczZWMzZWQzZDdiMjQ1YWMwMjcyZC4uZGVjYTE3
NjUyM2I4ODM4ZmQ5ZDBjZjM2NWFhNDljMjRiZTAyZGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0z
NCw3ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI2Niw3ICsyNjYsNyBAQCBwcml2YXRlOgogI2lmIEhB
VkUoQ09PS0lFX0NIQU5HRV9MSVNURU5FUl9BUEkpCiAgICAgYm9vbCBtX2RpZFJlZ2lzdGVyQ29v
a2llTGlzdGVuZXJzIHsgZmFsc2UgfTsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU2V0PiBtX3N1
YnNjcmliZWREb21haW5zRm9yQ29va2llQ2hhbmdlczsKLSAgICBIYXNoTWFwPFN0cmluZywgSGFz
aFNldDxDb29raWVDaGFuZ2VPYnNlcnZlcio+PiBtX2Nvb2tpZUNoYW5nZU9ic2VydmVyczsKKyAg
ICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIEhhc2hTZXQ8Q29va2llQ2hh
bmdlT2JzZXJ2ZXIqPj4gbV9jb29raWVDaGFuZ2VPYnNlcnZlcnM7CiAjZW5kaWYKIAogICAgIENy
ZWRlbnRpYWxTdG9yYWdlIG1fY3JlZGVudGlhbFN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJlbmNlZFNWR1Jlc291cmNlcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlZmVyZW5jZWRTVkdSZXNvdXJjZXMuaAppbmRleCAwNzdiYmJhODhiYTc4
NGI5YTlkMmExYWRhMGUyNGNkYTE0NGFjNjc5Li44MTZkN2Q3YWM2MzI3NTg2NzBiNjNkOWFlZTZh
MjZhNzIzMzMzNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJl
bmNlZFNWR1Jlc291cmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWZlcmVu
Y2VkU1ZHUmVzb3VyY2VzLmgKQEAgLTI2LDggKzI2LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
U3RyaW5nSGFzaC5oPgogCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1v
dmVDbGllbnRGb3JUYXJnZXQoRG9jdW1lbnQmLCBjb25zdCBBdG9tU3RyaW5nJik7CiAKICAgICBS
ZW5kZXJFbGVtZW50JiBtX3JlbmRlcmVyOwotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1
bmlxdWVfcHRyPENTU1NWR1Jlc291cmNlRWxlbWVudENsaWVudD4+IG1fZWxlbWVudENsaWVudHM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlx
dWVfcHRyPENTU1NWR1Jlc291cmNlRWxlbWVudENsaWVudD4+IG1fZWxlbWVudENsaWVudHM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1l
bnRFeHRlbnNpb25zLmgKaW5kZXggOWJiZDc3YmJjYzUzYjU4ZjhkOTA1MTZjZGJjMTM5YTNiZGQx
ZmVkZS4uY2ZhNjJlZTM3NTBjZDMwZTZiZDU3OGY1ZDJiMDU1N2ViNTk2NzFiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaApAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmlu
Z0hhc2guaD4KIApAQCAtNzYsOSArNzcsOSBAQCBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OwogICAgIFdlYWtIYXNoU2V0PFNWR1NWR0VsZW1lbnQ+IG1fdGltZUNvbnRhaW5lcnM7
IC8vIEZvciBTVkcgMS4yIHN1cHBvcnQgdGhpcyB3aWxsIG5lZWQgdG8gYmUgbWFkZSBtb3JlIGdl
bmVyYWwuCiAgICAgV2Vha0hhc2hTZXQ8U1ZHRm9udEZhY2VFbGVtZW50PiBtX3N2Z0ZvbnRGYWNl
RWxlbWVudHM7Ci0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcio+IG1fcmVzb3VyY2VzOwotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgV2Vha0hhc2hTZXQ8
RWxlbWVudD4+IG1fcGVuZGluZ1Jlc291cmNlczsgLy8gUmVzb3VyY2VzIHRoYXQgYXJlIHBlbmRp
bmcuCi0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBXZWFrSGFzaFNldDxFbGVtZW50Pj4gbV9wZW5k
aW5nUmVzb3VyY2VzRm9yUmVtb3ZhbDsgLy8gUmVzb3VyY2VzIHRoYXQgYXJlIHBlbmRpbmcgYW5k
IHNjaGVkdWxlZCBmb3IgcmVtb3ZhbC4KKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxBdG9tU3RyaW5nLCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcio+IG1fcmVzb3VyY2VzOwor
ICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtIYXNoU2V0
PEVsZW1lbnQ+PiBtX3BlbmRpbmdSZXNvdXJjZXM7IC8vIFJlc291cmNlcyB0aGF0IGFyZSBwZW5k
aW5nLgorICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtI
YXNoU2V0PEVsZW1lbnQ+PiBtX3BlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFsOyAvLyBSZXNvdXJj
ZXMgdGhhdCBhcmUgcGVuZGluZyBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsLgogICAgIHN0ZDo6
dW5pcXVlX3B0cjxTVkdSZXNvdXJjZXNDYWNoZT4gbV9yZXNvdXJjZXNDYWNoZTsKIAogICAgIFZl
Y3RvcjxSZWY8U1ZHRWxlbWVudD4+IG1fcmVidWlsZEVsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmgKaW5kZXggY2MyYmI4YWE1OTNmMjRhNjdiZDIwNWQ3MTk0MmIwNTdlMjhjOTZhMC4uNTNl
ZGRmM2FmN2EyMTNjZjI5ZjU0M2I1MmE3NWM2YjdiMzZiZDVkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5oCkBAIC0xMTUsOSArMTE1LDYgQEAgcHJpdmF0ZToKICAgICBKU0M6OlJ1bnRpbWVGbGFn
cyBtX3J1bnRpbWVGbGFnczsKICAgICBEZXF1ZTxSZWZQdHI8RXZlbnQ+PiBtX3BlbmRpbmdFdmVu
dHM7CiAgICAgYm9vbCBtX3dhc1Rlcm1pbmF0ZWQgeyBmYWxzZSB9OwotI2lmIEVOQUJMRShXRUJf
UlRDKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3RyYW5zZm9ybWVyczsKLSNlbmRpZgogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBlZDc4OTNj
YmM4MjJhNzgzNWY4MDRkNTkyYTZiNDdhZDRmOGU3OWQyLi4yMDVjNWM0ZjZjYjFmMDIzYzAwMGFk
ODFiY2VmZmM5NzcxY2VjYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkVmVj
dG9yLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYv
V2Vha0hhc2hTZXQuaD4KQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUg
UmVmUHRyPENyeXB0bz4gbV9jcnlwdG87CiAKICAgICBXZWFrUHRyPFNjcmlwdEJ1ZmZlclNvdXJj
ZVByb3ZpZGVyPiBtX21haW5TY3JpcHRTb3VyY2VQcm92aWRlcjsKLSAgICBIYXNoTWFwPFVSTCwg
V2Vha0hhc2hTZXQ8U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI+PiBtX2ltcG9ydGVkU2NyaXB0
c1NvdXJjZVByb3ZpZGVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkws
IFdlYWtIYXNoU2V0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyPj4gbV9pbXBvcnRlZFNjcmlw
dHNTb3VyY2VQcm92aWRlcnM7CiAKICAgICBSZWZQdHI8V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3Jr
ZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGV4dERhdGEuaAppbmRleCA5YTY2ZDQ4YjBhMjlkOWYyOTNhMzJiZmZlODRhNTdj
MGQ3NzcyN2E0Li5iYjE1MGRmZDg3NjQ3NzBjNjFiMjZiMjBkYjkwNjJjZDZkMzk1YWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRl
eHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxI
YXNoLmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCkBAIC05NSw3ICs5NSw3IEBAIHN0
cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewogICAgIFdvcmtlclR5cGUgd29ya2VyVHlw
ZTsKICAgICBib29sIGxvYWRlZEZyb21EaXNrOwogICAgIHN0ZDo6b3B0aW9uYWw8TGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQ+IGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkOwotICAg
IEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2NyaXB0UmVzb3VyY2VNYXA7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2NyaXB0UmVz
b3VyY2VNYXA7CiAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwogICAgIE5hdmlnYXRpb25QcmVsb2Fk
U3RhdGUgbmF2aWdhdGlvblByZWxvYWRTdGF0ZTsKIApAQCAtMTY0LDcgKzE2NCw3IEBAIHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYXN0TmF2aWdhdGlv
bldhc0FwcEluaXRpYXRlZCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBI
YXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291
cmNlTWFwOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2NyaXB0UmVzb3VyY2VNYXApKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCmlu
ZGV4IGYxNDhhM2RhZWIxYzc1MDE2MjUyMzE2OTRmZjU4NDU1ODRlYTU5YTAuLjIwZTdhNzY5OGMx
NjQ1M2E0ZTViNTRkNjM4NjI1YzlkNWJiZWU3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwCkBAIC0xMjksNyArMTI5LDcgQEAgc3RydWN0IEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcyB7
CiAgICAgfQogfTsKIAotc3RhdGljIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0
ZXM+IHN0cmlwU2NyaXB0U291cmNlcyhjb25zdCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mIG1hcCkKK3N0YXRpYyBIYXNoTWFwPFVSTCwgSW1w
b3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiBzdHJpcFNjcmlwdFNvdXJjZXMoY29uc3QgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9y
dGVkU2NyaXB0PiYgbWFwKQogewogICAgIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJp
YnV0ZXM+IG1hcFdpdGhvdXRTY3JpcHRzOwogICAgIGZvciAoYXV0byYgcGFpciA6IG1hcCkKQEAg
LTEzNyw5ICsxMzcsOSBAQCBzdGF0aWMgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0QXR0cmli
dXRlcz4gc3RyaXBTY3JpcHRTb3VyY2VzKGNvbnN0IEhhc2hNYXA8VQogICAgIHJldHVybiBtYXBX
aXRob3V0U2NyaXB0czsKIH0KIAotc3RhdGljIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBwb3B1bGF0ZVNjcmlwdFNvdXJjZXNGcm9tRGlzayhT
V1NjcmlwdFN0b3JhZ2UmIHNjcmlwdFN0b3JhZ2UsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0QXR0
cmlidXRlcz4mJiBtYXApCitzdGF0aWMgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJM
LCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBwb3B1bGF0ZVNjcmlw
dFNvdXJjZXNGcm9tRGlzayhTV1NjcmlwdFN0b3JhZ2UmIHNjcmlwdFN0b3JhZ2UsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgSGFzaE1hcDxVUkws
IEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcz4mJiBtYXApCiB7Ci0gICAgSGFzaE1hcDxVUkwsIFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IGltcG9ydGVkU2NyaXB0czsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IGltcG9ydGVkU2NyaXB0czsKICAgICBmb3IgKGF1dG8m
IHBhaXIgOiBtYXApIHsKICAgICAgICAgYXV0byBpbXBvcnRlZFNjcmlwdCA9IHNjcmlwdFN0b3Jh
Z2UucmV0cmlldmUocmVnaXN0cmF0aW9uS2V5LCBwYWlyLmtleSk7CiAgICAgICAgIGlmICghaW1w
b3J0ZWRTY3JpcHQpIHsKQEAgLTQ4MSw3ICs0ODEsNyBAQCBib29sIFJlZ2lzdHJhdGlvbkRhdGFi
YXNlOjpkb1B1c2hDaGFuZ2VzKGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+
JgogICAgICAgICBBU1NFUlQobWFpblNjcmlwdCk7CiAgICAgICAgIGlmICghbWFpblNjcmlwdCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1
ZmZlcj4gaW1wb3J0ZWRTY3JpcHRzOworICAgICAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4gaW1wb3J0ZWRTY3JpcHRzOwogICAgICAgICBmb3IgKGF1
dG8mIFtzY3JpcHRVUkwsIHNjcmlwdF0gOiBkYXRhLnNjcmlwdFJlc291cmNlTWFwKSB7CiAgICAg
ICAgICAgICBhdXRvIGltcG9ydGVkU2NyaXB0ID0gc2NyaXB0U3RvcmFnZS5zdG9yZShkYXRhLnJl
Z2lzdHJhdGlvbi5rZXksIHNjcmlwdFVSTCwgc2NyaXB0LnNjcmlwdCk7CiAgICAgICAgICAgICBB
U1NFUlQoaW1wb3J0ZWRTY3JpcHQpOwpAQCAtNTQ2LDcgKzU0Niw3IEBAIFN0cmluZyBSZWdpc3Ry
YXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3JkcygpCiAKICAgICAgICAgYXV0byByZWZlcnJlclBv
bGljeSA9IHNxbC0+Y29sdW1uVGV4dCgxMCk7CiAKLSAgICAgICAgSGFzaE1hcDxVUkwsIFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOwor
ICAgICAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOwogICAgICAgICBh
dXRvIHNjcmlwdFJlc291cmNlTWFwRGF0YVNwYW4gPSBzcWwtPmNvbHVtbkJsb2JBc1NwYW4oMTEp
OwogICAgICAgICBpZiAoc2NyaXB0UmVzb3VyY2VNYXBEYXRhU3Bhbi5zaXplKCkpIHsKICAgICAg
ICAgICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgc2NyaXB0UmVzb3VyY2VNYXBEZWNvZGVy
KHNjcmlwdFJlc291cmNlTWFwRGF0YVNwYW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcAppbmRleCAy
MTkwNTc2MTYzODk3OTJlYzNhYzYwMTY1MTgxMmMzNzU1OTIyOGNkLi40ODJkNzEwOGIwZmYxNDgw
YWRkMjdiNzZmZGNiNzhmZWNhMzNmZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcApAQCAtMTI4
LDcgKzEyOCw3IEBAIHZvaWQgUmVnaXN0cmF0aW9uU3RvcmU6OmFkZFJlZ2lzdHJhdGlvbkZyb21E
YXRhYmFzZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkCiAgICAgbV9zZXJ2ZXIuYWRkUmVn
aXN0cmF0aW9uRnJvbVN0b3JlKFdURk1vdmUoZGF0YSkpOwogfQogCi12b2lkIFJlZ2lzdHJhdGlv
blN0b3JlOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFz
aE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCit2b2lkIFJlZ2lzdHJh
dGlvblN0b3JlOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0
ZWRTY3JpcHRzKQogewogICAgIG1fc2VydmVyLmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5TY3JpcHQpLCBXVEZNb3ZlKGltcG9y
dGVkU2NyaXB0cykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCmluZGV4IDNiM2NkOTg3YjcxZTQyNDcx
ZjFlMjI2Njc1MDcwNTk0OTFlMmNiM2QuLjA1ZWEwYmMzNjFkNGRlMzZmMWIwMzkyYTFiYTA3OTcy
ZDllZjYxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uRnJvbURhdGFiYXNlKFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYmKTsKICAgICB2b2lkIGRhdGFiYXNlRmFpbGVkVG9PcGVuKCk7CiAgICAgdm9pZCBkYXRh
YmFzZU9wZW5lZEFuZFJlY29yZHNJbXBvcnRlZCgpOwotICAgIHZvaWQgZGlkU2F2ZVdvcmtlclNj
cmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5T
Y3JpcHQsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKKyAg
ICB2b2lkIGRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOwogCiAgICAgU1dTZXJ2ZXIm
IHNlcnZlcigpIHsgcmV0dXJuIG1fc2VydmVyOyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGRhMWIwOWE1MzU3ZThm
YjU1NTJjYmZjZTBhNDU2ZDYyODMzNTI3ZjYuLjM0ZTQ0OTU3OWNjYTIyNjNkYzhlMGFmYWJiODkx
NjQ1MjU1NTJkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBTV1NlcnZlcjo6YWRk
UmVnaXN0cmF0aW9uRnJvbVN0b3JlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGRhdGEpCiAg
ICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZm
ZXImJiBtYWluU2NyaXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2Ny
aXB0cykKK3ZvaWQgU1dTZXJ2ZXI6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBt
YWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZl
cj4mJiBpbXBvcnRlZFNjcmlwdHMpCiB7CiAgICAgaWYgKGF1dG8gd29ya2VyID0gd29ya2VyQnlJ
RChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpCiAgICAgICAgIHdvcmtlci0+ZGlkU2F2ZVNjcmlw
dHNUb0Rpc2soV1RGTW92ZShtYWluU2NyaXB0KSwgV1RGTW92ZShpbXBvcnRlZFNjcmlwdHMpKTsK
QEAgLTcxNyw3ICs3MTcsNyBAQCB2b2lkIFNXU2VydmVyOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlcgogICAgICAgICByZWdp
c3RyYXRpb24tPnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oY29ubmVjdGlv
bi5pZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIoY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2
ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjcmlw
dEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNvZXAsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXAs
IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZl
clJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU2NyaXB0
QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0
eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYgY29lcCwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+
JiYgc2NyaXB0UmVzb3VyY2VNYXAsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKIHsKICAgICB0cnlJbnN0
YWxsQ29udGV4dERhdGEoU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsgam9iRGF0YUlkZW50aWZp
ZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpLCBzY3JpcHQsIGNlcnRpZmljYXRlSW5mbywgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb2Vw
LCByZWZlcnJlclBvbGljeSwgdXJsLCB0eXBlLCBmYWxzZSwgY2xpZW50SXNBcHBJbml0aWF0ZWRG
b3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbih1cmwpKSwgV1RGTW92ZShzY3Jp
cHRSZXNvdXJjZU1hcCksIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgeyB9IH0pOwogfQpA
QCAtODAxLDcgKzgwMSw3IEBAIHZvaWQgU1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YShjb25z
dCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiAgICAgfQogCiAgICAgYXV0byogcmVn
aXN0cmF0aW9uID0gbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwLmdldChkYXRhLnJlZ2lzdHJhdGlv
bi5rZXkpLmdldCgpOwotICAgIGF1dG8gd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmNyZWF0ZSgq
dGhpcywgKnJlZ2lzdHJhdGlvbiwgZGF0YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBkYXRhLmNl
cnRpZmljYXRlSW5mbywgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGRhdGEuY3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeSwgU3RyaW5nIHsgZGF0YS5yZWZlcnJlclBvbGljeSB9LCBkYXRhLndv
cmtlclR5cGUsIGRhdGEuc2VydmljZVdvcmtlcklkZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiB7IGRhdGEuc2NyaXB0UmVzb3Vy
Y2VNYXAgfSk7CisgICAgYXV0byB3b3JrZXIgPSBTV1NlcnZlcldvcmtlcjo6Y3JlYXRlKCp0aGlz
LCAqcmVnaXN0cmF0aW9uLCBkYXRhLnNjcmlwdFVSTCwgZGF0YS5zY3JpcHQsIGRhdGEuY2VydGlm
aWNhdGVJbmZvLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZGF0YS5jcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LCBTdHJpbmcgeyBkYXRhLnJlZmVycmVyUG9saWN5IH0sIGRhdGEud29ya2Vy
VHlwZSwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiB7
IGRhdGEuc2NyaXB0UmVzb3VyY2VNYXAgfSk7CiAKICAgICBhdXRvKiBjb25uZWN0aW9uID0gd29y
a2VyLT5jb250ZXh0Q29ubmVjdGlvbigpOwogICAgIEFTU0VSVChjb25uZWN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA0
ZTI5ZmJlNGMzZDkxYjRlYjk3NjM5N2RmZWFiZDQ5Yjk3YzFiYjk3Li5kM2M0OWYyYWMwYzFhNGEz
ZWU2NDAzMmU0ZTM3NmQzODBiOGFkNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTE1Niw3ICsxNTcsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCB1bnJl
Z2lzdHJhdGlvblJlc3VsdCk7CiAgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKIAotICAgIHZvaWQgdXBk
YXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNXU2VydmVy
UmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXJQb2xpY3ksIFdvcmtlclR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE6OkltcG9ydGVkU2NyaXB0PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgdXBk
YXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNXU2VydmVy
UmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXJQb2xpY3ksIFdvcmtlclR5cGUsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwg
U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoU1dTZXJ2ZXJXb3JrZXImKTsKICAg
ICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNXU2VydmVyV29ya2VyJik7CiAKQEAgLTE5Nyw3ICsx
OTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0
cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb25Gcm9t
U3RvcmUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYpOwotICAgIHZvaWQgZGlkU2F2ZVdvcmtl
clNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1h
aW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsK
KyAgICB2b2lkIGRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOwogICAgIHZvaWQgcmVn
aXN0cmF0aW9uU3RvcmVJbXBvcnRDb21wbGV0ZSgpOwogICAgIHZvaWQgcmVnaXN0cmF0aW9uU3Rv
cmVEYXRhYmFzZUZhaWxlZFRvT3BlbigpOwogICAgIHZvaWQgc3RvcmVSZWdpc3RyYXRpb25Gb3JX
b3JrZXIoU1dTZXJ2ZXJXb3JrZXImKTsKQEAgLTI5MSw3ICsyOTIsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYWtQdHI8U1dTZXJ2
ZXJSZWdpc3RyYXRpb24+PiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllclRvUmVnaXN0cmF0
aW9uTWFwOwogICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFVu
aXF1ZVJlZjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4+IG1fY2xpZW50c0J5SWQ7CiAgICAgSGFz
aE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXI+IG1fY2xpZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlvbjsKLSAg
ICBIYXNoTWFwPFN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fdmlz
aWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1f
dmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwOwogCiAgICAgVW5pcXVlUmVmPFNX
T3JpZ2luU3RvcmU+IG1fb3JpZ2luU3RvcmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdHJh
dGlvblN0b3JlPiBtX3JlZ2lzdHJhdGlvblN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmgKaW5kZXggNTY5YjFhYzMwZTJkNDI5NDNhY2M5NTVjODllZWViOTQxODdhNGQw
My4uZjYyNzA5N2ExNzQxZjVhZWQ0Y2EwMDdjODQyM2Q0NzU5ZjA3YzkzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRl
bnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdv
cmtlcklkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rp
c2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IEhh
c2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNv
bnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVS
TCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0
b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJl
UHVzaEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3Rvcjx1aW50OF90Pj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGZpcmVOb3RpZmljYXRpb25FdmVudChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgY29uc3QgTm90aWZpY2F0aW9uRGF0YSYsIE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCBk
MTllOWVhZWFjZWRmZmQ5YWFlYmRiMTE5NTFjOGM5N2MxMGVjZGFjLi41YzZiMmRiZGFiM2I3NGJi
M2ZmMzk2YjNkOThkYWY4ZWU1MWEyZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtNTAsNyArNTAs
NyBAQCBTV1NlcnZlcldvcmtlciogU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRl
bnRpZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZgogfQogCiAvLyBGSVhNRTogVXNlIHItdmFsdWUg
cmVmZXJlbmNlcyBmb3Igc2NyaXB0IGFuZCBjb250ZW50U2VjdXJpdHlQb2xpY3kKLVNXU2VydmVy
V29ya2VyOjpTV1NlcnZlcldvcmtlcihTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJh
dGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU2NyaXB0QnVm
ZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYgY3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXApCitTV1NlcnZl
cldvcmtlcjo6U1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFNjcmlwdEJ1
ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5cGUsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3Jp
cHRSZXNvdXJjZU1hcCkKICAgICA6IG1fc2VydmVyKHNlcnZlcikKICAgICAsIG1fcmVnaXN0cmF0
aW9uS2V5KHJlZ2lzdHJhdGlvbi5rZXkoKSkKICAgICAsIG1fcmVnaXN0cmF0aW9uKHJlZ2lzdHJh
dGlvbikKQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjpzZXRTY3JpcHRS
ZXNvdXJjZShVUkwmJiB1cmwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wbwogICAgIG1f
c2NyaXB0UmVzb3VyY2VNYXAuc2V0KFdURk1vdmUodXJsKSwgV1RGTW92ZShzY3JpcHQpKTsKIH0K
IAotdm9pZCBTV1NlcnZlcldvcmtlcjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVmZmVy
JiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlw
dHMpCit2b2lkIFNXU2VydmVyV29ya2VyOjpkaWRTYXZlU2NyaXB0c1RvRGlzayhTY3JpcHRCdWZm
ZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlw
dEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCiB7CiAgICAgLy8gU2VuZCBtbWFwJ2QgdmVyc2lv
biBvZiB0aGUgc2NyaXB0cyB0byB0aGUgU2VydmljZVdvcmtlciBwcm9jZXNzIHNvIHdlIGNhbiBz
YXZlIGRpcnR5IG1lbW9yeS4KICAgICBpZiAoYXV0byogY29udGV4dENvbm5lY3Rpb24gPSB0aGlz
LT5jb250ZXh0Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCmluZGV4IDcxN2Q1NTllZGJmMzgxYjA1
YzU3MjBlNThlNmM0OWViNmM2ZDA3YzUuLjliZDU2N2MzY2I5NzExNTE4ODk3OTQ5YzIxOTA4NTY1
ODJmNzY1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvVVJMSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTEwNiw3ICsx
MDcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50QnlWaXNp
YmxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mJik+JiYpOwogICAgIHZvaWQgbWF0Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1
ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKTsKICAg
ICB2b2lkIHNldFNjcmlwdFJlc291cmNlKFVSTCYmLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6
OkltcG9ydGVkU2NyaXB0JiYpOwotICAgIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0
QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRl
ZFNjcmlwdHMpOworICAgIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVmZmVyJiYg
bWFpblNjcmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZm
ZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKIAogICAgIHZvaWQgc2tpcFdhaXRpbmcoKTsKICAgICBi
b29sIGlzU2tpcFdhaXRpbmdGbGFnU2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc1NraXBXYWl0aW5n
RmxhZ1NldDsgfQpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGlzQ2xpZW50QWN0aXZlU2VydmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgU1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2
ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlwdEJ1ZmZl
ciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBTdHJpbmcm
JiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIEhh
c2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmKTsK
KyAgICBTV1NlcnZlcldvcmtlcihTV1NlcnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29u
c3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeSYsIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJM
LCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmKTsKIAogICAgIHZv
aWQgY2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGJvb2wgc3VjY2Vzcyk7CiAKQEAgLTE2OSw3ICsx
NzAsNyBAQCBwcml2YXRlOgogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21h
aW47CiAgICAgYm9vbCBtX2lzU2tpcFdhaXRpbmdGbGFnU2V0IHsgZmFsc2UgfTsKICAgICBWZWN0
b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4+IG1fd2hlbkFjdGl2YXRlZEhhbmRsZXJz
OwotICAgIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0PiBtX3NjcmlwdFJlc291cmNlTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gbV9zY3Jp
cHRSZXNvdXJjZU1hcDsKICAgICBib29sIG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzVGltZWRPdXRBbnlGZXRjaFRhc2tzIHsgZmFsc2UgfTsKICAgICBW
ZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV90ZXJtaW5hdGlvbkNhbGxiYWNrczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
aW5kZXggMDAzODU0YjYxMGYzMzFkN2U4NDQ5OWJlOWIxY2Q2NjYzNmUxZmQzNS4uZjg2ODA5OWI1
ODc5NDZhYzRjZDNhNWZhOWJhZWVkMzYzMGNiNzU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2
b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpUZXJtaW5hdGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIp
KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFNhdmVTY3Jp
cHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBjb25zdCBTY3JpcHRCdWZmZXImIHNjcmlwdCwgY29uc3QgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1
ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3Jp
cHRzKQogewogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpICYmIFBMQVRGT1JNKENPQ09B
KQogICAgIC8vIFNlbmQgZmlsZS1tYXBwZWQgU2NyaXB0QnVmZmVycyBvdmVyIHRvIHRoZSBTZXJ2
aWNlV29ya2VyIHByb2Nlc3Mgc28gdGhhdCBpdCBjYW4gcmVwbGFjZSBpdHMgaGVhcC1hbGxvY2F0
ZWQgY29waWVzIGFuZCBzYXZlIG9uIGRpcnR5IG1lbW9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCA0ZWQwNmUyODY5MmI0MmM4YTRj
OGI2ZmIxMGEwN2M0ZDIzZDVjOWI4Li42MmEyZDk2Y2U0YTcyMmExYzlmYWUxOGNiOTQ2NGEyYTQ0
OTdlNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2
ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZp
cmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
cikgZmluYWw7Ci0gICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29uc3QgSGFz
aE1hcDxVUkwsIFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgZmluYWw7
CisgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29uc3QgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8VVJMLCBXZWJDb3JlOjpTY3JpcHRCdWZmZXI+JiBpbXBvcnRlZFNj
cmlwdHMpIGZpbmFsOwogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mKSBmaW5hbDsKICAgICB2b2lkIGZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgZmlyZU5vdGlmaWNh
dGlvbkV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25EYXRhJiwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRXZlbnRUeXBlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZmQ1YWI4MWEzY2I4
YWYxNTc1NTcyNDUzZTJjZmM1M2FmNGMwYjJjZi4uOWM3MmQ1YzNhMTJlYzE0Nzc5ZWRlYTc0ZDBm
ZTE5MGZjZDNkOTNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGQ6Om9wdGlvbmFsPFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHBhcmFtZXRlcnMubG9h
ZHNTdWJyZXNvdXJjZXMgPSAqbG9hZHNTdWJyZXNvdXJjZXM7CiAKLSAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxTdHJpbmc+Pj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jp
bkhvb2RIYXNoU2V0PFN0cmluZz4+PiBhbGxvd2VkTmV0d29ya0hvc3RzOwogICAgIGRlY29kZXIg
Pj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBpZiAoIWFsbG93ZWROZXR3b3JrSG9zdHMpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggODRmYzQ2YzZmOWE2NGNkN2ZhM2JjODU5
MDFhZjBiYmIwYTY4NTVkOS4uYzE4OTY5ZWM2MDg3Y2M5YjZjNzU4ZThhYTMyOTI4ZDAyNzcyZDIz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaApAQCAtNTAsNyArNTAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkUmVsYXhUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKEFQUExJ
Q0FUSU9OX01BTklGRVNUKQpAQCAtMjI0LDcgKzIyNCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7
CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUg
fTsKICAgICBib29sIGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwotICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaFNldDxTdHJpbmc+PiBhbGxvd2VkTmV0d29ya0hvc3RzOworICAgIHN0ZDo6b3B0aW9u
YWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IGFsbG93
ZWROZXR3b3JrSG9zdHM7CiAKICAgICBib29sIGNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNr
RW5hYmxlZCB7IHRydWUgfTsKICAgICBTdHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRl
eCBiNWI1ZTI1YjRkNjRlOGJiZTZmZWFkM2FlMmFmYTVkMGI2OTFjNDg3Li41NGE4YmVlMzY1Y2I4
ODMwYzFkYmE3ZjM5ODZmZDUzYTEwMjJmZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMzEsNyArMzEsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYv
Um9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE1Nyw4ICsxNTcsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBsb2Fkc1N1YnJlc291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNTdWJyZXNvdXJj
ZXM7IH0KICAgICB2b2lkIHNldExvYWRzU3VicmVzb3VyY2VzKGJvb2wgbG9hZHMpIHsgbV9sb2Fk
c1N1YnJlc291cmNlcyA9IGxvYWRzOyB9CiAKLSAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXQ8V1RGOjpTdHJpbmc+PiYgYWxsb3dlZE5ldHdvcmtIb3N0cygpIGNvbnN0IHsgcmV0dXJuIG1f
YWxsb3dlZE5ldHdvcmtIb3N0czsgfQotICAgIHZvaWQgc2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhz
dGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYmIGhvc3RzKSB7IG1fYWxsb3dlZE5l
dHdvcmtIb3N0cyA9IFdURk1vdmUoaG9zdHMpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYgYWxs
b3dlZE5ldHdvcmtIb3N0cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE5ldHdvcmtIb3N0czsg
fQorICAgIHZvaWQgc2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhzdGQ6Om9wdGlvbmFsPE1lbW9yeUNv
bXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxXVEY6OlN0cmluZz4+JiYgaG9zdHMpIHsg
bV9hbGxvd2VkTmV0d29ya0hvc3RzID0gV1RGTW92ZShob3N0cyk7IH0KIAogI2lmIEVOQUJMRShB
UFBfQk9VTkRfRE9NQUlOUykKICAgICBib29sIGlnbm9yZXNBcHBCb3VuZERvbWFpbnMoKSBjb25z
dCB7IHJldHVybiBtX2lnbm9yZXNBcHBCb3VuZERvbWFpbnM7IH0KQEAgLTIzNSw3ICsyMzUsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJs
ZWQgeyB0cnVlIH07CiAgICAgV1RGOjpTdHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAgICAg
Ym9vbCBtX2xvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8SGFz
aFNldDxXVEY6OlN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6Om9wdGlv
bmFsPE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxXVEY6OlN0cmluZz4+
IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJ
TlMpCiAgICAgYm9vbCBtX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQppbmRleCAxMmI5YzUwNzJlZDczMjhkNDBjNGYzZWNjN2FhNjI0OWZjYTZk
Zjg4Li5lODc4OWE5MWU5Y2M3NmRlZTQ2ZGE0NzE4ZGJlMjNmM2ZjMWYwYmQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAj
aW1wb3J0IDx3dGYvVVJMUGFyc2VyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNp
bXBvcnQgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgpAQCAtOTgy
LDcgKzk4Myw3IEBAIC0gKHZvaWQpX3NldENPUlNEaXNhYmxpbmdQYXR0ZXJuczooTlNBcnJheTxO
U1N0cmluZyAqPiAqKXBhdHRlcm5zCiAKIC0gKHZvaWQpX3NldExvYWRzRnJvbU5ldHdvcms6KEJP
T0wpbG9hZHMKIHsKLSAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFsbG93ZWROZXR3b3JrSG9z
dHMobG9hZHMgPyBzdGQ6Om51bGxvcHQgOiBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nPj4g
eyBIYXNoU2V0PFN0cmluZz4geyB9IH0pOworICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QWxs
b3dlZE5ldHdvcmtIb3N0cyhsb2FkcyA/IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6b3B0aW9uYWwgeyBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiB7IH0gfSk7CiB9
CiAKIC0gKEJPT0wpX2xvYWRzRnJvbU5ldHdvcmsKQEAgLTk5NCw3ICs5OTUsNyBAQCAtICh2b2lk
KV9zZXRBbGxvd2VkTmV0d29ya0hvc3RzOihOU1NldDxOU1N0cmluZyAqPiAqKWhvc3RzCiB7CiAg
ICAgaWYgKCFob3N0cykKICAgICAgICAgcmV0dXJuIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QWxs
b3dlZE5ldHdvcmtIb3N0cyhzdGQ6Om51bGxvcHQpOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBzZXQ7
CisgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gc2V0
OwogICAgIGZvciAoTlNTdHJpbmcgKmhvc3QgaW4gaG9zdHMpCiAgICAgICAgIHNldC5hZGQoaG9z
dCk7CiAgICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRBbGxvd2VkTmV0d29ya0hvc3RzKFdURk1v
dmUoc2V0KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458067</attachid>
            <date>2022-04-21 08:44:22 -0700</date>
            <delta_ts>2022-04-21 12:21:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239576-20220421084422.patch</filename>
            <type>text/plain</type>
            <size>110385</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE2NGY4MzU4ZmEwZTU1NTNjYzc2ZWU5
YzlmZDkzNDdhZjIwOGJhY2MuLjZjZDY0YWJmODIwNzY1MTI2YmFhMmM0OGZlYTFhNzljNTc0M2E2
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29k
SGFzaFNldCBtb3JlIGJyb2FkbHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdXNpbmcgUm9iaW5Ib29kSGFzaE1hcCAvIFJv
YmluSG9vZEhhc2hTZXQgd2l0aCBVUkwga2V5cyBzaW5jZSBhIFVSTCB3cmFwcyBhIFN0cmluZwor
ICAgICAgICBhbmQgdXNlcyBpdHMgaW50ZXJuYWwgU3RyaW5nJ3MgY2FjaGVkIGhhc2ggYXMgaGFz
aC4KKworICAgICAgICAqIHd0Zi9VUkxIYXNoLmg6CisKIDIwMjItMDQtMjAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHRydWUgLyBmYWxzZSBBdG9tU3Ry
aW5ncyB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5kIHJldXNlIHRoZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmY3NGRmMDFjOTA5YzJjODE3NTQyN2JkNWZkNWRiZGNiNjI2ZjY1Li5iY2JlZTRiOWEyMTk1YWQ3
YzkxNTNkMjgwMjMzM2M2NDI5NDY0N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI0IEBACisy
MDIyLTA0LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5IGluIFdl
YkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
b3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUgYnJvYWRseSBpbiBX
ZWJDb3JlIHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5IGluIGhhc2ggdGFibGVzLgorICAgICAgICBS
b2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBoYXZlIG1vcmUgcmVzdHJpY3Rpb25z
IG9uIHdoYXQga2V5IHR5cGVzIHRoZXkgd29yayB3aXRoIGFuZCBtYXkgcmVzdWx0CisgICAgICAg
IGluIHNsaWdodGx5IGxvd2VyIHBlcmZvcm1hbmNlIGJ1dCB0aGV5IGhhdmUgYSBtdWNoIGhpZ2hl
ciBsb2FkIGZhY3RvciB0aGF0IHRoZSByZWd1bGFyIEhhc2hNYXAgLyBIYXNoU2V0LAorICAgICAg
ICB0aHVzIHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4gVGhpcyBwYXRjaCBhZG9wdHMgUm9iaW5Ib29k
SGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgb24gbm9uIHBlcmZvcm1hbmNlCisgICAgICAgIHNl
bnNpdGl2ZSBtYXBzIC8gc2V0cyBpbiBXZWJDb3JlIHRoYXQgaGF2ZSBjb21wYXRpYmxlIGtleXMg
KFN0cmluZyAvIEF0b21TdHJpbmcgLyBVUkwgYmVjYXVzZSB0aGV5IGNhY2hlCisgICAgICAgIHRo
ZWlyIGhhc2gpLgorCisgICAgICAgIFRoaXMgaXMgcGVyZi1uZXV0cmFsIG9uIGFsbCBvdXIgYmVu
Y2htYXJrcyBhY2NvcmRpbmcgdG8gQS9CIHRlc3RpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0RnJvemVuS2V5VmFsdWVP
YmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29weURhdGFGcm9tUGFyYW1ldGVyTWFwVG9KU09i
amVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNB
cmd1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6cGFyYW1ldGVyRGVzY3JpcHRvck1hcCBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXVEZfUkVRVUlSRVNfTE9DSyk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFj
a2VyOjpyZWNvcmREZWxldGluZ0RhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oOgorICAgICAgICAqIGRvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6cHJvbWlzZU1hcCk6CisgICAgICAgICogZG9t
L0V4dGVuc2lvblN0eWxlU2hlZXRzLmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAg
ICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OjpyZXNldE9ic2VydmF0aW9uKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbi5oOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAg
ICAgICAgKiBkb20vV2luZG93RXZlbnRMb29wLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrUmVzb3VyY2VzRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQu
aDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OnNldEFjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvblBhdHRlcm5z
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmg6CisgICAgICAgICogcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldURl9SRVFVSVJF
U19MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnVwZGF0ZVRyYWNrc09mS2luZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvVVRJUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFz
ZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyaWNGYW1pbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tOgorICAgICAgICAoV2ViQ29y
ZVJlcG9ydFRocmVhZFZpb2xhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVn
aXN0cnlJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlZmVyZW5jZWRTVkdSZXNvdXJjZXMuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3RyaXBTY3JpcHRTb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlU2NyaXB0
U291cmNlc0Zyb21EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNl
Ojpkb1B1c2hDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNl
OjppbXBvcnRSZWNvcmRzKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lz
dHJhdGlvblN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvblN0b3JlOjpk
aWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmRpZFNhdmVXb3Jr
ZXJTY3JpcHRzVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1cGRhdGVXb3Jr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YSk6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6U1dTZXJ2ZXJXb3JrZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1dTZXJ2ZXJXb3JrZXI6OmRpZFNhdmVTY3JpcHRzVG9EaXNrKToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisKIDIwMjItMDQtMjAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZvbGxv
dy11cCB0byByMjkzMTIzIHRvIGFkZHJlc3MgcmV2aWV3IGZlZWRiYWNrIGZyb20gU2FtICYgRGFy
aW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNWEzZjBjNmM4ZDBlMGVlNTg1ZDNhZjRmYTAyNzU4OTM2YzYyN2Q0Zi4u
MDVkYWU4MWJmNTM1OTNmOGI2ODQ1NWM0OGFjZTYyMTc1NmU3MTA3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMi0wNC0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkb3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUg
YnJvYWRseSBpbiBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzk1NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBtb3Jl
IGJyb2FkbHkgaW4gV2ViS2l0IHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5IGluIGhhc2ggdGFibGVz
LgorICAgICAgICBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBoYXZlIG1vcmUg
cmVzdHJpY3Rpb25zIG9uIHdoYXQga2V5IHR5cGVzIHRoZXkgd29yayB3aXRoIGFuZCBtYXkgcmVz
dWx0CisgICAgICAgIGluIHNsaWdodGx5IGxvd2VyIHBlcmZvcm1hbmNlIGJ1dCB0aGV5IGhhdmUg
YSBtdWNoIGhpZ2hlciBsb2FkIGZhY3RvciB0aGF0IHRoZSByZWd1bGFyIEhhc2hNYXAgLyBIYXNo
U2V0LAorICAgICAgICB0aHVzIHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4gVGhpcyBwYXRjaCBhZG9w
dHMgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgb24gbm9uIHBlcmZvcm1hbmNl
CisgICAgICAgIHNlbnNpdGl2ZSBtYXBzIC8gc2V0cyBpbiBXZWJDb3JlIHRoYXQgaGF2ZSBjb21w
YXRpYmxlIGtleXMgKFN0cmluZyAvIEF0b21TdHJpbmcgLyBVUkwgYmVjYXVzZSB0aGV5IGNhY2hl
CisgICAgICAgIHRoZWlyIGhhc2gpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFNhdmVTY3JpcHRzVG9EaXNr
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFsbG93ZWROZXR3b3JrSG9zdHMgY29uc3QpOgorICAg
ICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRMb2Fkc0Zyb21OZXR3b3JrOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRBbGxvd2VkTmV0d29ya0hv
c3RzOl0pOgorCiAyMDIyLTA0LTIwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgaU9TIDE1LjQgYnVpbGQgYWZ0ZXIg
cjI5MzExNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMSGFzaC5oIGIvU291cmNlL1dU
Ri93dGYvVVJMSGFzaC5oCmluZGV4IDI2OWUyYjU5ODRjMDU5YmFmYmY0MjkzZDBkZjQxMzgxOTcx
NWFjYjkuLjk3YTNlZTU1ZWVmYmU3NGRlZTZlYzBjZDBjMWZkMmZjYjBmOGZlMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1VSTEhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxIYXNo
LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IFVSTEhhc2ggewogICAgIH0KIAogICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNIYXNoSW5WYWx1ZSA9IHRydWU7CiB9OwogCiAv
LyBVUkxIYXNoIGlzIHRoZSBkZWZhdWx0IGhhc2ggZm9yIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaApp
bmRleCA3N2Q2MDRiMDhiYjdmN2UzOGJjY2IzNTQ1YjM0YzhiMTM0MzU1ZWYyLi43NzY3NjI2NDc4
OWIyNjVlMTEzNDk4OWEyYTA5MWI3MmEyYmQ1ODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaApAQCAtMjgs
OSArMjgsOSBAQAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAKICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CkBAIC02OSw3ICs2
OSw3IEBAIHByaXZhdGU6CiAgICAgSW5pdERhdGFSZWdpc3RyeSgpOwogICAgIH5Jbml0RGF0YVJl
Z2lzdHJ5KCk7CiAKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIEluaXREYXRhVHlwZUNhbGxiYWNr
cz4gbV90eXBlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5n
LCBJbml0RGF0YVR5cGVDYWxsYmFja3M+IG1fdHlwZXM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNz
aW9uQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVn
YWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oCmluZGV4IGE5YjRkMGEzNjNlZDU4YjRjMGQ0
MmE0MzJjZTk3ODRlNzFhNzFhMjAuLmQ1MjIzZTY1MzIyYTA1NTQzYmYwZTljYjY5MWM1MmRiZWFm
OWNlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
bGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oCkBA
IC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Np
b24uaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUo
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBXZWFrUHRyPExlZ2FjeUNETVNlc3Npb25DbGllbnQ+IG1fY2xpZW50OwogICAgIFJl
ZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8
dWludDhfdD4+IG1fY2FjaGVkS2V5czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj4gbV9jYWNoZWRLZXlzOwogICAgIFN0cmluZyBtX3Nl
c3Npb25JZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKaW5kZXggYmQwZmNhOGY5
NzEwZDNmNzdjNTI3NjIxMTM4MjBjZGQ0MmZiMDhmZi4uZjJlZjQ4MTA0MWU0MDM0YTMwZWIzMWYz
YzBhMjM0MWI3YzgzZTcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKQEAgLTMwLDgg
KzMwLDggQEAKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKICNpbmNsdWRlICJJbmRl
eGVkREIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04OCw3ICs4OCw3IEBAIHBy
aXZhdGU6CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxTUUxpdGVJREJDdXJzb3I+PiBtX2N1cnNvcnM7CiAgICAgSGFzaFNldDxTUUxpdGVJREJDdXJz
b3IqPiBtX2JhY2tpbmdTdG9yZUN1cnNvcnM7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IG1fYmxvYlRlbXBvcmFyeUFuZFN0b3JlZEZpbGVuYW1lczsKLSAgICBIYXNoU2V0
PFN0cmluZz4gbV9ibG9iUmVtb3ZlZEZpbGVuYW1lczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaFNldDxTdHJpbmc+IG1fYmxvYlJlbW92ZWRGaWxlbmFtZXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJREJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKaW5kZXggYjdkZmU0NGIyNWZjNDc3MjE3
NGFhNjQ2ZTRiNThjMGEzMmVlMjI5ZC4uYTc1ZTQ5M2QzNTM3NTQ2NDExMjBkYjVhZjAzM2Q1NTc4
Njg0YTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Myw3ICs1
Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZVJlZ2lzdHJ5KCk7Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4+IG1fbWVkaWFTb3VyY2VzOwor
ICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU291
cmNlPj4gbV9tZWRpYVNvdXJjZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRl
eCBlMThkNTRkNDA2YzM1NzM1YzY0OWJiN2E5N2U4ZWNiYzczNDY3NjY3Li5hNDk0MWIyOTNmMjY0
NzE3MGJjNGM5YWVhMTZlM2U5MmNiOThmMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEzMyw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJl
cXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVudEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2Vy
R2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJlVG9rZW47CiAKLSAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZDsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERl
dmljZUlkVG9QZXJzaXN0ZW50SWQ7CiAgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAppbmRleCA3NDMxODBkMjliZWM1MzU3ZGYwYzFlNDgyZmU4YTI1NjRkYmU5MDdlLi4yNGJm
NTFmODMxMzFhMmQ5OTIxZmEzMjkyNGIyOWU3YWViZGI5OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0zOCw5ICszOCw5IEBA
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlICJVUkxSZWdpc3RyeS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0MSw3
ICsxNDEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV9wcml2
YXRlOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4gbV90
cmFja1NldDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPj4gbV90cmFja1NldDsKIAogICAgIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbV9zdGF0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5oCmluZGV4IGNmY2E2ZWRmMjJkYTcyNzUyNjYwZDIyNzYwODJkOTAxZjgzNTZkN2UuLjE5
ZDE4ZDEzNjc2ZGQ4MjNkNWRkM2E2YmQzNzFlYTJjYjA2OTYxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
d2VicnRjIHsKQEAgLTE5MCwxMyArMTkxLDEzIEBAIHByaXZhdGU6CiAgICAgU2V0TG9jYWxTZXNz
aW9uRGVzY3JpcHRpb25PYnNlcnZlcjxMaWJXZWJSVENNZWRpYUVuZHBvaW50PiBtX3NldExvY2Fs
U2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXI7CiAgICAgU2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0
aW9uT2JzZXJ2ZXI8TGliV2ViUlRDTWVkaWFFbmRwb2ludD4gbV9zZXRSZW1vdGVTZXNzaW9uRGVz
Y3JpcHRpb25PYnNlcnZlcjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJl
YW0+PiBtX3JlbW90ZVN0cmVhbXNCeUlkOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtPj4gbV9yZW1vdGVTdHJlYW1zQnlJZDsKICAg
ICBIYXNoTWFwPE1lZGlhU3RyZWFtVHJhY2sqLCBWZWN0b3I8U3RyaW5nPj4gbV9yZW1vdGVTdHJl
YW1zRnJvbVJlbW90ZVRyYWNrOwogCiAgICAgYm9vbCBtX2lzSW5pdGlhdG9yIHsgZmFsc2UgfTsK
ICAgICBUaW1lciBtX3N0YXRzTG9nVGltZXI7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFt
czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlPj4gbV9sb2NhbFN0cmVhbXM7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0
RmFjdG9yeT4gbV9ydGNTb2NrZXRGYWN0b3J5OwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lz
dHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3Ry
eS5jcHAKaW5kZXggZjU1MDc4MGE4MWQ2MjRmMzFkMGUxODMzOTNlNTUxNDM1MzQwYTFjMi4uNzhl
M2JjOTRiOWFkMDgxMGNjZjcwMmI5ZWExNWQ2MmYyZTAxNjNjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2
LDggKzY3LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8TG9jYWxXZWJMb2NrUmVnaXN0cnk+
IG1fZ2xvYmFsUmVnaXN0cnk7CiAgICAgQ2xpZW50T3JpZ2luIG1fY2xpZW50T3JpZ2luOwotICAg
IEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9ja1JlcXVlc3RRdWV1ZU1h
cDsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxkTG9ja3M7Cisg
ICAgRmFzdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9j
a1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBGYXN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZlY3Rv
cjxMb2NrSW5mbz4+IG1faGVsZExvY2tzOwogfTsKIAogTG9jYWxXZWJMb2NrUmVnaXN0cnk6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IGY4
MjJlMmI4MzExNGZiNDA3NDYwYjI0ODBjYmY0ZDY2NDJjNjAzZWEuLmM3N2RkNWVhYzcwMWUxYzNi
YjE5MzliYzkwOTVkYTk0NTJkMDA5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKICNpbmNsdWRlICJNZXNzYWdl
UG9ydC5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtODEsNyArODIsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1fY3Vy
cmVudEZyYW1lIHsgMCB9OwogICAgIGNvbnN0IGZsb2F0IG1fc2FtcGxlUmF0ZTsKLSAgICBIYXNo
TWFwPFN0cmluZywgUmVmUHRyPEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0b3I+PiBt
X3Byb2Nlc3NvckNvbnN0cnVjdG9yTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgUmVmUHRyPEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0b3I+PiBt
X3Byb2Nlc3NvckNvbnN0cnVjdG9yTWFwOwogICAgIExvY2sgbV9wcm9jZXNzb3JzTG9jazsKICAg
ICBXZWFrSGFzaFNldDxBdWRpb1dvcmtsZXRQcm9jZXNzb3IsIFdURjo6RW1wdHlDb3VudGVyLCBF
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6Tm8+IG1fcHJvY2Vzc29ycyBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fcHJvY2Vzc29yc0xvY2spOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRp
b1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhPiBtX3BlbmRpbmdQcm9jZXNzb3JDb25z
dHJ1Y3Rpb25EYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaAppbmRleCBkNWI1YTYzMzFmZTFhMmI3ZjkzNmFjZjlmYmYwZDNlNWIy
NmJjMzczLi4zYmQyYjAzODlmMTZiMTg4MjlkNjNiNDY1ZGRlNTIwYzcxN2NjYjAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUg
IkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hNYXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsK
QEAgLTg2LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9ydDsK
ICAgICBMb2NrIG1fcHJvY2Vzc0xvY2s7CiAgICAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nv
cj4gbV9wcm9jZXNzb3I7IC8vIFNob3VsZCBvbmx5IGJlIHVzZWQgb24gdGhlIHJlbmRlcmluZyB0
aHJlYWQuCi0gICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJy
YXk+PiBtX3BhcmFtVmFsdWVzTWFwOworICAgIE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5I
b29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX3Bh
cmFtVmFsdWVzTWFwOwogICAgIFRocmVhZCogbV93b3JrbGV0VGhyZWFkIHsgbnVsbHB0ciB9Owog
CiAgICAgLy8gS2VlcHMgdGhlIHJlZmVyZW5jZSBvZiBBdWRpb0J1cyBvYmplY3RzIGZyb20gQXVk
aW9Ob2RlSW5wdXQgYW5kIEF1ZGlvTm9kZU91dHB1dCBpbiBvcmRlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3Bw
CmluZGV4IDI4MjQwODI1YjI4NGU3YjA4NjNkMjIwNjlmZDg4ZjRlZWY2NGU4ZTEuLmNiN2UyZTM5
OTliMGQyMTFjNjk3ZjM1N2ViOGU4Mjc5ZGIzNDgyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAg
LTc2LDcgKzc2LDcgQEAgc3RhdGljIEpTRmxvYXQzMkFycmF5KiBjb25zdHJ1Y3RKU0Zsb2F0MzJB
cnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCB1bnMKICAgICByZXR1cm4ganNBcnJh
eTsKIH0KIAotc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RGcm96ZW5LZXlWYWx1ZU9iamVjdChW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQorc3Rh
dGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RGcm96ZW5LZXlWYWx1ZU9iamVjdChWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9i
aW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYg
cGFyYW1WYWx1ZXNNYXApCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIGF1dG8qIHBsYWluT2JqZWN0U3RydWN0dXJlID0gSlNGaW5hbE9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCAmZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90
eXBlKCksIDApOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBib29sIGNvcHlEYXRhRnJvbUJ1
c2VzVG9KU0FycmF5KEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGNvcHlEYXRhRnJvbVBhcmFtZXRlck1h
cFRvSlNPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBI
YXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZh
bHVlc01hcCwgSlNPYmplY3QqIGpzT2JqZWN0KQorc3RhdGljIGJvb2wgY29weURhdGFGcm9tUGFy
YW1ldGVyTWFwVG9KU09iamVjdChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIEpTT2JqZWN0
KiBqc09iamVjdCkKIHsKICAgICBpZiAoIWpzT2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0yMTgsNyArMjE4LDcgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IoQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUmIGdsb2JhbFNjb3AKICAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKIH0KIAotdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxk
SlNBcmd1bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRB
cmd1bWVudEJ1ZmZlckJhc2UmIGFyZ3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYg
aW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQor
dm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1bWVudHMoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UmIGFyZ3Ms
IGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlv
QnVzPj4mIG91dHB1dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1
ZXNNYXApCiB7CiAgICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHdlIGNhY2hlIHRoZSBh
cnJheXMgcGFzc2VkIHRvIEpTIGFuZCByZWNvbnN0cnVjdCB0aGVtIG9ubHkgd2hlbiB0aGUgdG9w
b2xvZ3kgY2hhbmdlcy4KICAgICBpZiAoIWNvcHlEYXRhRnJvbUJ1c2VzVG9KU0FycmF5KGdsb2Jh
bE9iamVjdCwgaW5wdXRzLCB0b0pTQXJyYXkobV9qc0lucHV0cykpKQpAQCAtMjM0LDcgKzIzNCw3
IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAgICAgYXJncy5hcHBlbmQobV9qc1BhcmFtVmFs
dWVzLmdldFZhbHVlKCkpOwogfQogCi1ib29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vz
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRp
b0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiti
b29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1
ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2Vw
dGlvbikKIHsKICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1
ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8g
ZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3Iu
aAppbmRleCA3ZDI1NmVhNTU3YmI4NjZjMTUxYzczNDgzMDJjMmQxMTA5M2ZiMzk4Li4zY2Y5Y2Zm
MGE0MjMyM2FlYmQxMjYxZTViM2FiNGQzNjkyY2VmYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogICAgIGNvbnN0
IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIE1lc3NhZ2VQb3J0
JiBwb3J0KCkgeyByZXR1cm4gbV9wb3J0LmdldCgpOyB9CiAKLSAgICBib29sIHByb2Nlc3MoY29u
c3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+
PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zs
b2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKTsKKyAgICBi
b29sIHByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3Rv
cjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+
JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pOwogCiAgICAgSlNWYWx1ZUlu
V3JhcHBlZE9iamVjdCYganNJbnB1dHNXcmFwcGVyKCkgeyByZXR1cm4gbV9qc0lucHV0czsgfQog
ICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGpzT3V0cHV0c1dyYXBwZXIoKSB7IHJldHVybiBt
X2pzT3V0cHV0czsgfQpAQCAtNjksNyArNzAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlJiwg
Y29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YSYpOwotICAgIHZvaWQg
YnVpbGRKU0FyZ3VtZW50cyhKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXJCYXNlJiwgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBp
bnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApOwor
ICAgIHZvaWQgYnVpbGRKU0FyZ3VtZW50cyhKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiwgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRp
b0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgTWVt
b3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCk7CiAKICAgICBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZSYgbV9nbG9iYWxTY29wZTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRl
eCA0YWZmYWMzM2UzNDI0YzNmYWI1YWE1YjJiZWQwZDc0NDc2NzIyZmQ1Li42ZTNiODdmNGU4ZDFk
MDc2ZDk5NDYzYTlmN2Y3Y2YyODkwZTE4MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC0yMjMsNyArMjI0LDcgQEAgcHVibGljOgog
ICAgIFBlcmlvZGljV2F2ZSYgcGVyaW9kaWNXYXZlKE9zY2lsbGF0b3JUeXBlKTsKIAogICAgIHZv
aWQgYWRkQXVkaW9QYXJhbURlc2NyaXB0b3JzKGNvbnN0IFN0cmluZyYgcHJvY2Vzc29yTmFtZSwg
VmVjdG9yPEF1ZGlvUGFyYW1EZXNjcmlwdG9yPiYmKTsKLSAgICBjb25zdCBIYXNoTWFwPFN0cmlu
ZywgVmVjdG9yPEF1ZGlvUGFyYW1EZXNjcmlwdG9yPj4mIHBhcmFtZXRlckRlc2NyaXB0b3JNYXAo
KSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXA7IH0KKyAgICBjb25zdCBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1BhcmFtRGVz
Y3JpcHRvcj4+JiBwYXJhbWV0ZXJEZXNjcmlwdG9yTWFwKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJEZXNjcmlwdG9yTWFwOyB9CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlQXVk
aW9Db250ZXh0KERvY3VtZW50Jik7CkBAIC0zNDUsNyArMzQ2LDcgQEAgcHJpdmF0ZToKIAogICAg
IEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFBvc2l0aW9uOwogCi0gICAgSGFzaE1hcDxTdHJpbmcs
IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4+IG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcDsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1Bh
cmFtRGVzY3JpcHRvcj4+IG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcDsKIAogICAgIC8vIFRoZXNl
IGFyZSBjYWNoZWQgcGVyIGF1ZGlvIGNvbnRleHQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRo
ZXkgY2Fubm90IGJlCiAgICAgLy8gc3RhdGljIGJlY2F1c2UgdGhleSByZWx5IG9uIHRoZSBzYW1w
bGUgcmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5jcHAKaW5kZXggMDE4ZGJiOTliMThmYjY3YjhiMGRjMDkzODgyNzgxN2FiZGIyYzYyNC4uNTNm
YmUzMjA1MjRlYTRhNGZkNGYxZDM5ZjJjZDI0OWQwNTY4NTcxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAK
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKQEAgLTE4MSw3ICsxODIsNyBAQCBzdGF0aWMgSGFzaE1hcDxEYXRhYmFzZUdVSUQs
IEhhc2hTZXQ8RGF0YWJhc2UqPj4mIGd1aWRUb0RhdGFiYXNlTWFwKCkgV1RGX1JFUVVJUgogCiBz
dGF0aWMgaW5saW5lIERhdGFiYXNlR1VJRCBndWlkRm9yT3JpZ2luQW5kTmFtZShjb25zdCBTdHJp
bmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKSBXVEZfUkVRVUlSRVNfTE9DSyhndWlkTG9j
aykKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIERhdGFiYXNl
R1VJRD4+IG1hcDsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgRGF0YWJhc2VHVUlEPj4gbWFwOwogICAgIHJl
dHVybiBtYXAuZ2V0KCkuZW5zdXJlKG1ha2VTdHJpbmcob3JpZ2luLCAnLycsIG5hbWUpLCBbXSB7
CiAgICAgICAgIHN0YXRpYyBEYXRhYmFzZUdVSUQgbGFzdFVzZWRHVUlEOwogICAgICAgICByZXR1
cm4gKytsYXN0VXNlZEdVSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggYTRmMGM3NDQ1MjM3MWE0ZGJkOGRm
MDg2MDY5ZWNkMTBhYmEzMjI5Zi4uYjlkM2MzOTI3YTc1MDBjMTk4ZmY3NWE4YjY2YTNjODE2MjA4
ZjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcApAQCAtOTg0LDcgKzk4NCw3IEBAIHZvaWQgRGF0YWJhc2VUcmFj
a2VyOjpyZWNvcmREZWxldGluZ0RhdGFiYXNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luLCBjCiAgICAgLy8gV2UgZG9uJ3QgdXNlIEhhc2hNYXA6OmVuc3VyZSBoZXJlIHRvIGF2b2lk
IG1ha2luZyBhbiBpc29sYXRlZCBjb3B5IG9mIHRoZSBvcmlnaW4gZXZlcnkgdGltZS4KICAgICBh
dXRvKiBuYW1lU2V0ID0gbV9iZWluZ0RlbGV0ZWQuZ2V0KG9yaWdpbik7CiAgICAgaWYgKCFuYW1l
U2V0KSB7Ci0gICAgICAgIGF1dG8gb3duZWRTZXQgPSBtYWtlVW5pcXVlPEhhc2hTZXQ8U3RyaW5n
Pj4oKTsKKyAgICAgICAgYXV0byBvd25lZFNldCA9IG1ha2VVbmlxdWU8TWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4oKTsKICAgICAgICAgbmFtZVNldCA9IG93bmVkU2V0Lmdl
dCgpOwogICAgICAgICBtX2JlaW5nRGVsZXRlZC5hZGQob3JpZ2luLmlzb2xhdGVkQ29weSgpLCBX
VEZNb3ZlKG93bmVkU2V0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKaW5kZXggNTZkYzEzNWUyM2E3MDM2YmUz
ZjBkOGYyODRlYTFmYmJmMjVkMWIzMy4uZjQzOTU5ODJkOGRlMWEzNzg5OTNmY2Y3MDlkNTUyMDdj
ODNlMzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVHJhY2tlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW5IYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTE3Nyw3
ICsxNzcsNyBAQCBwcml2YXRlOgogICAgIERhdGFiYXNlTWFuYWdlckNsaWVudCogbV9jbGllbnQg
eyBudWxscHRyIH07CiAKICAgICBIYXNoTWFwPFNlY3VyaXR5T3JpZ2luRGF0YSwgc3RkOjp1bmlx
dWVfcHRyPEhhc2hDb3VudGVkU2V0PFN0cmluZz4+PiBtX2JlaW5nQ3JlYXRlZCBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fZGF0YWJhc2VHdWFyZCk7Ci0gICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRh
dGEsIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PFN0cmluZz4+PiBtX2JlaW5nRGVsZXRlZCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgSGFzaE1hcDxTZWN1cml0eU9y
aWdpbkRhdGEsIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxT
dHJpbmc+Pj4gbV9iZWluZ0RlbGV0ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3Vh
cmQpOwogICAgIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBtX29yaWdpbnNCZWluZ0RlbGV0
ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwogICAgIGJvb2wgaXNEZWxl
dGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3IoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3Qg
U3RyaW5nJiBuYW1lKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwogICAgIHZv
aWQgcmVjb3JkQ3JlYXRpbmdEYXRhYmFzZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmIG5hbWUpIFdURl9SRVFVSVJFU19MT0NLKG1fZGF0YWJhc2VHdWFyZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZS5oCmluZGV4IGE0ZTY5YjUxYzg0NzBmNDg4YjE2MmNlNmFiMDg2MTRhY2ZhY2QyMDAuLmMyMTRk
Y2QyN2UwOTExODA4ZTllMTQyYjgxNzhkZDdjMzYwMjU5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhv
b2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC0xMDcsNyArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBKU0M6OldlYWs8
SlNDOjpKU09iamVjdD4gbV9hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s7CiAgICAgUmVmPERPTVdy
YXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOwogICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4s
IDE+IG1fY29uc3RydWN0aW9uU3RhY2s7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBtX29ic2Vy
dmVkQXR0cmlidXRlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxBdG9tU3Ry
aW5nPiBtX29ic2VydmVkQXR0cmlidXRlczsKICAgICBib29sIG1faXNTaGFkb3dEaXNhYmxlZCA6
IDE7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5oCmluZGV4IGI4Nzg0ZWExNzRmZjcxZmI1M2I4MWMxMTg0NjA0YTNhMmU5Mjg3OGQuLmU5
MmY0NWQ5YzVlOGE0YTdhZTUzOWI3ZDIzMDgxNGFhOThkNDJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Jv
YmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVJMSGFzaC5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKQEAgLTczLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBVUkwgcmVzcG9uc2VVUkxGcm9t
UmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fY29udGV4dDsKLSAgICBIYXNoTWFwPFN0cmluZywgVVJM
PiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAg
IEhhc2hTZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKICAgICBPd25lclR5
cGUgbV9vd25lclR5cGU7CiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbV9zaGFkb3dSZWFsbUds
b2JhbCB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21F
bGVtZW50UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0
cnkuaAppbmRleCAwMWVjNjQ0ODNlYWE0ZDkyN2VkYTY3Yjc3MDM5YmNjZjdlOTMyMDE4Li45NGZj
NmVhZjYxMDdiMmQwMWVhYjMwMjAyYjg3YjUzYzUyNTZhNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpbmNsdWRl
ICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUu
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAg
ICBKU0M6OkpTVmFsdWUgZ2V0KGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICB2b2lkIHVwZ3JhZGUo
Tm9kZSYgcm9vdCk7CiAKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxEZWZlcnJlZFByb21p
c2U+PiYgcHJvbWlzZU1hcCgpIHsgcmV0dXJuIG1fcHJvbWlzZU1hcDsgfQorICAgIE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxEZWZlcnJlZFByb21pc2U+PiYg
cHJvbWlzZU1hcCgpIHsgcmV0dXJuIG1fcHJvbWlzZU1hcDsgfQogICAgIGJvb2wgaXNTaGFkb3dE
aXNhYmxlZChjb25zdCBBdG9tU3RyaW5nJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVk
U2hhZG93U2V0LmNvbnRhaW5zKG5hbWUpOyB9CiAKIHByaXZhdGU6CkBAIC03Niw4ICs3Niw4IEBA
IHByaXZhdGU6CiAgICAgRE9NV2luZG93JiBtX3dpbmRvdzsKICAgICBIYXNoTWFwPEF0b21TdHJp
bmcsIFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+PiBtX25hbWVNYXA7CiAgICAgSGFzaE1h
cDxjb25zdCBKU0M6OkpTT2JqZWN0KiwgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKj4gbV9jb25z
dHJ1Y3Rvck1hcDsKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxEZWZlcnJlZFByb21pc2U+
PiBtX3Byb21pc2VNYXA7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBtX2Rpc2FibGVkU2hhZG93
U2V0OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxE
ZWZlcnJlZFByb21pc2U+PiBtX3Byb21pc2VNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9kaXNhYmxlZFNoYWRvd1NldDsKIAogICAgIGJvb2wgbV9l
bGVtZW50RGVmaW5pdGlvbklzUnVubmluZyB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V4dGVuc2lvblN0eWxlU2hlZXRzLmgKaW5kZXggZGE4YjBhOTY4Y2Q4YWIxZDU3MzQ2ZDlkYjg2
Yzk5MDc5YzQ0MzdmNC4uY2QyNDg1ODk1N2VlZTcyM2UxZmY4OTIzMzQ5ZmFhMGZmNGQ1YjMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmgKQEAgLTMwLDggKzMw
LDggQEAKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC05NSw4ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFVzZXJTdHlsZVNoZWV0PiBt
X3BhZ2VTcGVjaWZpY1N0eWxlU2hlZXRzOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPENTU1N0eWxlU2hlZXQ+PiBtX2NvbnRlbnRF
eHRlbnNpb25TaGVldHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ+PiBtX2NvbnRlbnRFeHRlbnNpb25TZWxl
Y3RvclNoZWV0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxDU1NTdHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0ZW5zaW9uU2hlZXRzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPENvbnRlbnRFeHRlbnNpb25z
OjpDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldD4+IG1fY29udGVudEV4dGVuc2lvblNlbGVjdG9y
U2hlZXRzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKaW5kZXggZDk4MDJmZTJiY2FjZTFiMDhmNTdjMzc2N2QwNWRkMzRhODM5MDYzMy4uZGQ2ZTRl
ZjZmODExNzZkNjExZWU0ZGQ0OWI0NWE3N2ZhYzRjZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkwLDcgKzkxLDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0
KQogICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGFPbGRWYWx1ZS52YWx1ZV9vcihmYWxzZSkpCiAg
ICAgICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAK
LSAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKKyAgICBNZW1vcnlDb21w
YWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlRmlsdGVy
OwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkKICAgICAgICAgICAgIGF0dHJpYnV0
ZUZpbHRlci5hZGQodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGQzYzFmYTY2ZWQyZjU1NDdmMGI4MDljNjkw
N2JiNDVjNGY5ZjU0YTMuLmM4YWYyZTgxOTJlZWEyMzY5OTIzODYwYzMzNTQ3ZTk0YjkxY2I4Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKE11
dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIp
CitNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKE11dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9v
ZEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcikKICAgICA6IG1fb2JzZXJ2ZXIo
b2JzZXJ2ZXIpCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQpA
QCAtNTMsNyArNTMsNyBAQCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp+TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbigpCiAgICAgbV9vYnNlcnZlci0+b2JzZXJ2YXRpb25FbmRlZCgq
dGhpcyk7CiB9CiAKLXZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6cmVzZXRPYnNl
cnZhdGlvbihNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0
b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OnJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywg
Y29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+
JiBhdHRyaWJ1dGVGaWx0ZXIpCiB7CiAgICAgdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsK
ICAgICBtX29wdGlvbnMgPSBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggNzViYjI3YzM1MTQwMmY1OGY0ZTc4NDk2
NTYzMGFiYjhlMjliNTFiNS4uMTI2N2YwMTJlNjQ3ZjZmOGRlOWFkYWJhMzVhODUxMDhmOWE3N2Jj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJHQ1JlYWNoYWJsZVJlZi5oIgog
I2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbVN0cmluZ0hhc2guaD4KQEAgLTQ4LDEwICs0OCwxMCBAQCBjbGFzcyBRdWFsaWZpZWROYW1l
OwogY2xhc3MgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihNdXRh
dGlvbk9ic2VydmVyJiwgTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNo
U2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOworICAgIE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24oTXV0YXRpb25PYnNlcnZlciYsIE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIH5NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKCk7CiAKLSAgICB2b2lkIHJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25PYnNlcnZlck9wdGlv
bnMsIGNvbnN0IEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CisgICAgdm9p
ZCByZXNldE9ic2VydmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBNZW1vcnlD
b21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZp
bHRlcik7CiAgICAgdm9pZCBvYnNlcnZlZFN1YnRyZWVOb2RlV2lsbERldGFjaChOb2RlJik7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiB0YWtlVHJh
bnNpZW50UmVnaXN0cmF0aW9ucygpOwogICAgIGJvb2wgaGFzVHJhbnNpZW50UmVnaXN0cmF0aW9u
cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgJiYgIW1fdHJh
bnNpZW50UmVnaXN0cmF0aW9uTm9kZXMtPmlzRW1wdHkoKTsgfQpAQCAtNzIsNyArNzIsNyBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX25vZGVLZXB0QWxpdmU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiBtX3RyYW5zaWVudFJlZ2lzdHJh
dGlvbk5vZGVzOwogICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG1fb3B0aW9uczsKLSAgICBI
YXNoU2V0PEF0b21TdHJpbmc+IG1fYXR0cmlidXRlRmlsdGVyOworICAgIE1lbW9yeUNvbXBhY3RM
b29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiBtX2F0dHJpYnV0ZUZpbHRlcjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxOGZhOTAw
NjE0ZWE0NmRkNDA3YjgxMTU0ZDc5MDJkMTYwNTBmYzQyLi5jMmE1YmRhODE2MmVmYzBiYWIxYTcy
YjEwYTg2OGQwNzdmOTk5YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMzE5LDcgKzIzMTksNyBA
QCBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQg
Tm9kZTo6cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVy
LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJp
bmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCit2b2lkIE5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZl
cihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0
aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCiB7CiAgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbiogcmVnaXN0cmF0aW9uID0gbnVsbHB0cjsKICAgICBhdXRvJiByZWdpc3RyeSA9IGVuc3Vy
ZVJhcmVEYXRhKCkuZW5zdXJlTXV0YXRpb25PYnNlcnZlckRhdGEoKS5yZWdpc3RyeTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCmluZGV4IDBlNGEwMDk1YTVlNjk2ZDkyMjcwM2IxMDIxMmZjZDkxMThkNjczOTIuLmJkZjE2
MmU3YzIxYjVjNmQzNDNmZDc2MWUwNzU1YmQ2ZTAxYTZjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMzgs
NiArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCkBAIC01MDAsNyArNTAxLDcgQEAgcHVibGljOgogICAgIEV2ZW50VGFy
Z2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CiAKICAgICBIYXNoTWFwPFJl
ZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJlZ2lz
dGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7Ci0gICAgdm9pZCByZWdpc3Rlck11dGF0aW9u
T2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25z
dCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOworICAgIHZvaWQgcmVnaXN0
ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2Jz
ZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgcmVnaXN0ZXJU
cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5k
b3dFdmVudExvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50TG9vcC5jcHAK
aW5kZXggYjljMWMxOTJjZmE0MmExZmYxYTJlYzNkYjk1ZjAwYjFjZWQ5ZDQ4MC4uYTYxMzJjYjEz
NTkyNjhmZTc3NTM4YjE2NmE5Yjc3ZDJhNzYwODIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1dpbmRvd0V2ZW50TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dpbmRv
d0V2ZW50TG9vcC5jcHAKQEAgLTM0LDE0ICszNCwxNSBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZEds
b2JhbERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhhc2hNYXA8
U3RyaW5nLCBXaW5kb3dFdmVudExvb3AqPiYgd2luZG93RXZlbnRMb29wTWFwKCkKK3N0YXRpYyBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdpbmRvd0V2ZW50TG9vcCo+JiB3
aW5kb3dFdmVudExvb3BNYXAoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFdpbmRvd0V2ZW50
TG9vcCo+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgV2luZG93RXZlbnRMb29wKj4+IG1hcDsKICAgICByZXR1cm4g
bWFwLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAwYjI5MWY0YjlkNGM4
NGQyNzUzYjg5MWVlMTY1MmI2N2MwNGFmM2ZhLi5mMjQ4OWIxZTQ1ZGMwYjhhZmVhOWYzODMwZTdm
NzlhN2MzMWUzNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUGFzdGVib2FyZFdyaXRlckRhdGEuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNl
dC5oPgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmcuaCIK
ICNpbmNsdWRlICJUZXh0RXZlbnRJbnB1dFR5cGUuaCIKQEAgLTY2Nyw4ICs2NjgsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9vdmVyd3JpdGVNb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2luc2VydGVk
QXR0YWNobWVudElkZW50aWZpZXJzOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlbW92ZWRBdHRh
Y2htZW50SWRlbnRpZmllcnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3Ry
aW5nPiBtX2luc2VydGVkQXR0YWNobWVudElkZW50aWZpZXJzOworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9yZW1vdmVkQXR0YWNobWVudElkZW50aWZpZXJzOwog
I2VuZGlmCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fbWFyazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAppbmRleCA5M2FhOGNiYTViMDgzMmUxZjNlZWIyMWRkYmYzNDMwOGY0NmVmMWYxLi5j
MWZkM2Q3OGY3MTUxOGE4N2JkZTBkOTllYzI3YTVlMTUwZDA2YjkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCkBAIC03OSw3ICs3OSw3IEBACiAjaW5jbHVkZSAiV2Vla0lucHV0VHlwZS5o
IgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaD4KIApAQCAtOTAsNyArOTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogdHlwZWRlZiBib29sIChTZXR0aW5nczo6KklucHV0VHlwZUNvbmRpdGlvbmFsRnVuY3Rp
b24pKCkgY29uc3Q7CiB0eXBlZGVmIGNvbnN0IEF0b21TdHJpbmcmICgqSW5wdXRUeXBlTmFtZUZ1
bmN0aW9uKSgpOwogdHlwZWRlZiBSZWY8SW5wdXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlGdW5j
dGlvbikoSFRNTElucHV0RWxlbWVudCYpOwotdHlwZWRlZiBIYXNoTWFwPEF0b21TdHJpbmcsIHN0
ZDo6cGFpcjxJbnB1dFR5cGVDb25kaXRpb25hbEZ1bmN0aW9uLCBJbnB1dFR5cGVGYWN0b3J5RnVu
Y3Rpb24+PiBJbnB1dFR5cGVGYWN0b3J5TWFwOwordHlwZWRlZiBNZW1vcnlDb21wYWN0TG9va3Vw
T25seVJvYmluSG9vZEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjpwYWlyPElucHV0VHlwZUNvbmRp
dGlvbmFsRnVuY3Rpb24sIElucHV0VHlwZUZhY3RvcnlGdW5jdGlvbj4+IElucHV0VHlwZUZhY3Rv
cnlNYXA7CiAKIHRlbXBsYXRlPGNsYXNzIFQ+IHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVhdGVJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmgKaW5k
ZXggOGEzMWVhODU5OGE2MDIzNDBjYTRhMTk3ZjdiOTY0ZThkYTUyZDNjMC4uYjE4M2JiZTMwOTk0
ODhjNDk3ODI0MjBiZmYzOTliMzBmZDQ5ZjA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmgKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNo
TWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTAsNyArOTEsNyBAQCBwcml2YXRl
OgogICAgIGNsYXNzIEluc3BlY3RvckF1ZGl0Q2FjaGVkU3R5bGVTaGVldENsaWVudCA6IHB1Ymxp
YyBDYWNoZWRTdHlsZVNoZWV0Q2xpZW50IHsgfTsKICAgICBJbnNwZWN0b3JBdWRpdENhY2hlZFN0
eWxlU2hlZXRDbGllbnQgbV9jYWNoZWRTdHlsZVNoZWV0Q2xpZW50OwogCi0gICAgSGFzaE1hcDxT
dHJpbmcsIENhY2hlZFJlc291cmNlKj4gbV9yZXNvdXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+IG1fcmVzb3VyY2VzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKaW5kZXggMzI4ZWJlN2U2NDExOTVlNWE0Njg1MDI3
NTU5MTBmNzhjNDhiNThkOC4uMGI3NGQ1NmNmMzU2MjY3YTM4Njk5YTk4ODAyNjIyMjg3NTRjY2Fh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0Rh
dGEuY3BwCkBAIC0zMTksOSArMzE5LDEwIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlc0RhdGE6OmNs
ZWFyKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwcmVzZXJ2ZWRMb2FkZXJJZCkKICAgICBpZiAoIXBy
ZXNlcnZlZExvYWRlcklkKQogICAgICAgICBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLmNs
ZWFyKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXAu
cmVtb3ZlSWYoW2xvYWRlcklkID0gKnByZXNlcnZlZExvYWRlcklkXSAoYXV0byYgZW50cnkpIHsK
LSAgICAgICAgICAgIHJldHVybiBlbnRyeS52YWx1ZS0+bG9hZGVySWQoKSAhPSBsb2FkZXJJZDsK
LSAgICAgICAgfSk7CisgICAgICAgIGF1dG8gZGF0YVRvS2VlcCA9IG1fcmVxdWVzdElkVG9SZXNv
dXJjZURhdGFNYXAudGFrZSgqcHJlc2VydmVkTG9hZGVySWQpOworICAgICAgICBtX3JlcXVlc3RJ
ZFRvUmVzb3VyY2VEYXRhTWFwLmNsZWFyKCk7CisgICAgICAgIGlmIChkYXRhVG9LZWVwKQorICAg
ICAgICAgICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcC5hZGQoKnByZXNlcnZlZExvYWRl
cklkLCBXVEZNb3ZlKGRhdGFUb0tlZXApKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmgKaW5kZXggYzhjZWQxMmE2NDA3ZmRj
ZDU3NGVjYzJhNzgxOWVkZTY2MzgwM2RhYy4uYTI0YWJkODgzNjYxN2JhYWEyODRjZTFjZTVmZDJj
MjMwOTFiN2E0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtS
ZXNvdXJjZXNEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNv
dXJjZXNEYXRhLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdl
bnQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZW5zdXJlRnJl
ZVNwYWNlKHNpemVfdCk7CiAKICAgICBEZXF1ZTxTdHJpbmc+IG1fcmVxdWVzdElkc0RlcXVlOwot
ICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VEYXRhPj4gbV9yZXF1
ZXN0SWRUb1Jlc291cmNlRGF0YU1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZURhdGE+PiBtX3JlcXVlc3RJZFRvUmVz
b3VyY2VEYXRhTWFwOwogICAgIHNpemVfdCBtX2NvbnRlbnRTaXplIHsgMCB9OwogICAgIHNpemVf
dCBtX21heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZTsKICAgICBzaXplX3QgbV9tYXhpbXVtU2lu
Z2xlUmVzb3VyY2VDb250ZW50U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaAppbmRleCA1YzYzMTNlOTE3
NmYxOTQ0ODZiNmNmODhjNzgxNDdkYjRiNTFiY2RjLi5hZGE5Zjg2OTViZDg0OTc3YmMzODQ3ZTk1
OGU1YWNhMjRiMWNhODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05MSw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAg
SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
OwogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJB
bmltYXRpb24qPiBtX2FuaW1hdGlvbklkTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgV2ViQW5pbWF0aW9uKj4gbV9hbmltYXRpb25JZE1hcDsKICAgICBWZWN0
b3I8U3RyaW5nPiBtX3JlbW92ZWRBbmltYXRpb25JZHM7CiAgICAgVGltZXIgbV9hbmltYXRpb25E
ZXN0cm95ZWRUaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IDRjN2MyMzk5NTI3NmYzOTI1ZjJiOGY1
NzNjZGQ2OGRkMGJmNTg1ZTUuLjk2ODdiNGY3ODc1MzY2Mzg4YzgyZGE5MDA3MDZjMDVlMjY3YzU1
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmgKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8aW5pdGlhbGl6
ZXJfbGlzdD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhv
b2RIYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0x
NDEsMTcgKzE0MywxNyBAQCBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBQYWdlJiBtX2luc3BlY3RlZFBh
Z2U7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4+IG1faWRl
bnRpZmllclRvSW5zcGVjdG9yQ2FudmFzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4+IG1faWRlbnRpZmllclRvSW5zcGVj
dG9yQ2FudmFzOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZENhbnZhc0lkZW50aWZpZXJz
OwogICAgIFRpbWVyIG1fY2FudmFzRGVzdHJveWVkVGltZXI7CiAKICNpZiBFTkFCTEUoV0VCR0wp
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9p
ZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+PiBtX2lkZW50aWZp
ZXJUb0luc3BlY3RvclByb2dyYW07CiAgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkUHJvZ3Jh
bUlkZW50aWZpZXJzOwogICAgIFRpbWVyIG1fcHJvZ3JhbURlc3Ryb3llZFRpbWVyOwogI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkKIAotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlY29yZGluZ0NhbnZh
c0lkZW50aWZpZXJzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4g
bV9yZWNvcmRpbmdDYW52YXNJZGVudGlmaWVyczsKIAogICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90
PiBtX3JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oCmluZGV4IDBlOGUyYjZhYTM5MmY5MDBiMmFkMmZmNmEyNTlmMTkzYzc4NTNhM2IuLmUwODNj
OGI0ZDk5ZDI5MWViNGJkZDM4NDA0OTVmMmQ5MTk2MGYyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTk4LDEzICs5OSwxMyBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OkRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2Vu
ZERpc3BhdGNoZXI7CiAgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFr
cG9pbnQ+PiBtX2xpc3RlbmVyQnJlYWtwb2ludHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV9saXN0ZW5lckJyZWFrcG9p
bnRzOwogICAgIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbEludGVydmFsc0Jy
ZWFrcG9pbnQ7CiAgICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9wYXVzZU9uQWxsTGlzdGVu
ZXJzQnJlYWtwb2ludDsKICAgICBSZWZQdHI8SlNDOjpCcmVha3BvaW50PiBtX3BhdXNlT25BbGxU
aW1lb3V0c0JyZWFrcG9pbnQ7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtw
b2ludD4+IG1fdXJsVGV4dEJyZWFrcG9pbnRzOwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SlND
OjpCcmVha3BvaW50Pj4gbV91cmxSZWdleEJyZWFrcG9pbnRzOworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fdXJsVGV4dEJy
ZWFrcG9pbnRzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVm
PEpTQzo6QnJlYWtwb2ludD4+IG1fdXJsUmVnZXhCcmVha3BvaW50czsKICAgICBSZWZQdHI8SlND
OjpCcmVha3BvaW50PiBtX3BhdXNlT25BbGxVUkxzQnJlYWtwb2ludDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFn
ZW50LmgKaW5kZXggNmRlNzQ2ZTE3ZDZlYjc5NmYxN2E2YmNlMzIyZjVjYTA4MDc2MzE3OC4uMTY0
ZWNiZTMxYjNiMDc1Y2VlNTQ0NWUwYTJiZGQ1MjIyYjY5ZjhhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgK
QEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rv
cjo6RGF0YWJhc2VGcm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OkRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERp
c3BhdGNoZXI7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvckRhdGFiYXNl
UmVzb3VyY2U+PiBtX3Jlc291cmNlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlPj4gbV9yZXNvdXJjZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAppbmRleCA3MmY0MjNm
ZjYxMjc3ZWVmNGJkMzU2MzI4YzQ2ZDNiZDkxMzFmZjY1Li5iOTU2Y2VlNmExN2EzN2VjZGQ3ZWNk
MzQyZjExYzZkYzE0NWM0MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZWd1bGFyRXhwcmVzc2lvbi5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDx3dGYv
Um9iaW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEluamVj
dGVkU2NyaXB0TWFuYWdlcjsKQEAgLTIyNSw3ICsyMjYsNyBAQCBwcml2YXRlOgogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtSZXNvdXJjZXNEYXRhPiBtX3Jlc291cmNlc0RhdGE7CiAKLSAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2V4dHJhUmVxdWVzdEhlYWRlcnM7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fZXh0cmFSZXF1ZXN0
SGVhZGVyczsKICAgICBIYXNoU2V0PFJlc291cmNlTG9hZGVySWRlbnRpZmllcj4gbV9oaWRkZW5S
ZXF1ZXN0SWRlbnRpZmllcnM7CiAKICAgICBzdHJ1Y3QgSW50ZXJjZXB0IHsKQEAgLTI0Myw4ICsy
NDQsOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfTsKICAgICBWZWN0b3I8SW50ZXJjZXB0
PiBtX2ludGVyY2VwdHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQZW5k
aW5nSW50ZXJjZXB0UmVxdWVzdD4+IG1fcGVuZGluZ0ludGVyY2VwdFJlcXVlc3RzOwotICAgIEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlPj4g
bV9wZW5kaW5nSW50ZXJjZXB0UmVzcG9uc2VzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXF1ZXN0Pj4g
bV9wZW5kaW5nSW50ZXJjZXB0UmVxdWVzdHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlPj4g
bV9wZW5kaW5nSW50ZXJjZXB0UmVzcG9uc2VzOwogCiAgICAgLy8gRklYTUU6IEluc3BlY3Rvck5l
dHdvcmtBZ2VudCBzaG91bGQgbm90IGJlIGF3YXJlIG9mIHN0eWxlIHJlY2FsY3VsYXRpb24uCiAg
ICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkluaXRpYXRvcj4gbV9zdHls
ZVJlY2FsY3VsYXRpb25Jbml0aWF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCAzZDVlNTY2ZGJlMGM1ZWMxMWQ5
ZThkZjY3ZmNmMGE3MDk4OGEyZjhmLi43MzQyNGMyZDNiMmFkOTg4OWE1NjZmZjYxZmQ4NmE1MGM5
OTE0Nzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVy
cy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC0xNjcsNyArMTY3LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1F
OiBNYWtlIGEgV2Vha0hhc2hNYXAgYW5kIHVzZSBpdCBmb3IgbV9mcmFtZVRvSWRlbnRpZmllciBh
bmQgbV9sb2FkZXJUb0lkZW50aWZpZXIuCiAgICAgSGFzaE1hcDxGcmFtZSosIFN0cmluZz4gbV9m
cmFtZVRvSWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPFN0cmluZywgV2Vha1B0cjxGcmFtZT4+IG1f
aWRlbnRpZmllclRvRnJhbWU7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3Ry
aW5nLCBXZWFrUHRyPEZyYW1lPj4gbV9pZGVudGlmaWVyVG9GcmFtZTsKICAgICBIYXNoTWFwPERv
Y3VtZW50TG9hZGVyKiwgU3RyaW5nPiBtX2xvYWRlclRvSWRlbnRpZmllcjsKICAgICBTdHJpbmcg
bV91c2VyQWdlbnRPdmVycmlkZTsKICAgICBTdHJpbmcgbV9lbXVsYXRlZE1lZGlhOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oCmluZGV4IGUxYmJkOGY5NDZlNDFmMzAxYThmZjg3Zjc0YWZlMzk5ZDYxZmVjMjguLjYyMWE5
ZjM1MjA0YzMwZTYwYzEzMjU5MWM3ZTVhMzYyODU2ODEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzEsNyArNzEs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJbnNwZWN0b3I6OldvcmtlckJhY2tlbmREaXNwYXRj
aGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogCiAgICAgUGFnZSYgbV9wYWdlOwotICAgIEhhc2hN
YXA8U3RyaW5nLCBXZWFrUHRyPFdvcmtlckluc3BlY3RvclByb3h5Pj4gbV9jb25uZWN0ZWRQcm94
aWVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgV2Vha1B0cjxX
b3JrZXJJbnNwZWN0b3JQcm94eT4+IG1fY29ubmVjdGVkUHJveGllczsKICAgICBib29sIG1fZW5h
YmxlZCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAppbmRleCAzMWNmNzhjYTViMTQzNTUxYTNiYTc1MDIzYWZjYTU0M2ZjZTQ5NDM0Li4yYTVi
ZjIzZjM4NTQ5M2MwYmMyM2FmMzkzMTIwNmM5MWJlY2EyNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTI1MTQsNyArMjUxNCw3IEBAIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OmNvbnRlbnRGaWx0ZXJIYW5kbGVQcm92aXNpb25hbExvYWRGYWlsdXJlKGNvbnN0
IFJlc291cmNlRXJyCiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldEFjdGl2ZUNvbnRlbnRSdWxl
TGlzdEFjdGlvblBhdHRlcm5zKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4m
IHBhdHRlcm5zKQogewotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8VXNlckNvbnRlbnRVUkxQ
YXR0ZXJuPj4gcGFyc2VkUGF0dGVybk1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aE1hcDxTdHJpbmcsIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+PiBwYXJzZWRQYXR0ZXJu
TWFwOwogCiAgICAgZm9yIChhdXRvJiBwYWlyIDogcGF0dGVybnMpIHsKICAgICAgICAgVmVjdG9y
PFVzZXJDb250ZW50VVJMUGF0dGVybj4gcGF0dGVyblZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmgKaW5kZXggYzY0NTBkNTA3MmQwZWZkMDQzMGI2ZDNlNTQyMGQyZDJi
M2U5NDNjYi4uZTljOGI2NGY0OTA1MjRjMzIxNjJiOWEwOTAwMDQ5ZDcwZWVkZDI5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTU1LDYgKzU1LDggQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
I2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKQEAgLTYzMyw3ICs2MzUsNyBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fcGFyc2VkQXJjaGl2ZURhdGE7CiAjZW5k
aWYKIAotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3Jlc291cmNlc0NsaWVudEtub3dzQWJvdXQ7Cisg
ICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX3Jlc291cmNlc0NsaWVu
dEtub3dzQWJvdXQ7CiAgICAgVmVjdG9yPFJlc291cmNlUmVxdWVzdD4gbV9yZXNvdXJjZXNMb2Fk
ZWRGcm9tTWVtb3J5Q2FjaGVGb3JDbGllbnROb3RpZmljYXRpb247CiAgICAgCiAgICAgU3RyaW5n
IG1fY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwpAQCAtNjgwLDggKzY4Miw4IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+PiBtX3BlbmRpbmdOYW1lZENv
bnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0czsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90Pj4+IG1fcGVuZGluZ0NvbnRlbnRFeHRlbnNpb25EaXNw
bGF5Tm9uZVNlbGVjdG9yczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+PiBtX3BlbmRpbmdOYW1lZENvbnRlbnRFeHRl
bnNpb25TdHlsZVNoZWV0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4+PiBtX3BlbmRpbmdDb250ZW50
RXh0ZW5zaW9uRGlzcGxheU5vbmVTZWxlY3RvcnM7CiAjZW5kaWYKICAgICBTdHJpbmcgbV9jdXN0
b21Vc2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fY3VzdG9tVXNlckFnZW50QXNTaXRlU3BlY2lmaWNR
dWlya3M7CkBAIC02ODksNyArNjkxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faWRlbXBvdGVu
dE1vZGVBdXRvc2l6aW5nT25seUhvbm9yc1BlcmNlbnRhZ2VzIHsgZmFsc2UgfTsKICAgICBTdHJp
bmcgbV9jdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybTsKICAgICBib29sIG1fdXNlckNvbnRlbnRFeHRl
bnNpb25zRW5hYmxlZCB7IHRydWUgfTsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFVzZXJD
b250ZW50VVJMUGF0dGVybj4+IG1fYWN0aXZlQ29udGVudFJ1bGVMaXN0QWN0aW9uUGF0dGVybnM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8VXNlckNv
bnRlbnRVUkxQYXR0ZXJuPj4gbV9hY3RpdmVDb250ZW50UnVsZUxpc3RBY3Rpb25QYXR0ZXJuczsK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUgbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0
YXRlIHsgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0IH07
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmgKaW5kZXggM2ZhZDlhNDkzMDcyNWY4NmI1MmY3MTM1YjJiYTY5YjlhNTU0NDlm
Mi4uMzBmNjYxY2M1ZjlhNzI1NjI2NTdiNTUxYzA2MDk2NmYxMjQwNTI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTM1
LDggKzM1LDggQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMjAwLDggKzIwMCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5SZXF1ZXN0QWZ0
ZXJSZWRpcmVjdGlvbihDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgVVJMJiwgY29uc3QgUmVz
b3VyY2VMb2FkZXJPcHRpb25zJiwgY29uc3QgVVJMJiBwcmVSZWRpcmVjdFVSTCkgY29uc3Q7CiAg
ICAgYm9vbCBjYW5SZXF1ZXN0SW5Db250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveChD
YWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgVVJMJikgY29uc3Q7CiAKLSAgICBIYXNoU2V0PFVS
TD4gbV92YWxpZGF0ZWRVUkxzOwotICAgIEhhc2hTZXQ8VVJMPiBtX2NhY2hlZFNWR0ltYWdlc1VS
THM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8VVJMPiBtX3ZhbGlkYXRlZFVS
THM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8VVJMPiBtX2NhY2hlZFNWR0lt
YWdlc1VSTHM7CiAgICAgbXV0YWJsZSBEb2N1bWVudFJlc291cmNlTWFwIG1fZG9jdW1lbnRSZXNv
dXJjZXM7CiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBEb2N1bWVudExv
YWRlciogbV9kb2N1bWVudExvYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTYzMzMwMGFkM2YxMWUx
YmY1ZDNiZTFmNTJmNTY0OWNkMDEyMmNkMS4uMDU4YTkxZDhlMTYwNzYyOGQzMTcyMjgwMWQ2NTM1
ZDYwNzlmMTE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrSGFzaFNldC5oPgpAQCAtMTE2NCw4ICsxMTY1LDggQEAgcHJpdmF0ZToKIAogICAg
IFJlZlB0cjxJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9pZGJDb25uZWN0aW9u
VG9TZXJ2ZXI7CiAKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsKLSAgICBIYXNo
U2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlhRW5naW5lczsKIAogICAgIHVuc2lnbmVkIG1f
bGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50IHsgMCB9OwogICAgIHVuc2lnbmVk
IG1fZm9yYmlkUHJvbXB0c0RlcHRoIHsgMCB9OwpAQCAtMTI4Nyw3ICsxMjg4LDcgQEAgcHJpdmF0
ZToKIAogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IG1fY29yc0Rpc2FibGluZ1Bh
dHRlcm5zOwogICAgIFZlY3RvcjxVc2VyU3R5bGVTaGVldD4gbV91c2VyU3R5bGVTaGVldHNQZW5k
aW5nSW5qZWN0aW9uOwotICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxTdHJpbmc+PiBtX2FsbG93
ZWROZXR3b3JrSG9zdHM7CisgICAgc3RkOjpvcHRpb25hbDxNZW1vcnlDb21wYWN0TG9va3VwT25s
eVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4gbV9hbGxvd2VkTmV0d29ya0hvc3RzOwogICAgIGJv
b2wgbV9pc1Rha2luZ1NuYXBzaG90c0ZvckFwcGxpY2F0aW9uU3VzcGVuc2lvbiB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2xvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9jYW5V
c2VDcmVkZW50aWFsU3RvcmFnZSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaAppbmRleCBlZDkyMDUzNDAzZDVlZTNiMmQ3M2Q2Y2RmYzAxYzAwNGRiZGY2YjY4
Li5jZDVhY2VjZTI3OTVkOWRjNGIwNzY2ZDJjNmQ0MTJjYzVmMjMyYWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgog
CiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBhbGwgYmUgU2V0dGluZ3MuCiAgICAgYm9v
bCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8
U3RyaW5nPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lbW9yeUNv
bXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+PiBhbGxvd2VkTmV0d29ya0hv
c3RzOwogICAgIGJvb2wgdXNlclNjcmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmljYXRpb24geyB0
cnVlIH07CiAgICAgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hvdWxkUmVs
YXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVC
bG9ja2luZzo6Tm8gfTsKICAgICBib29sIGh0dHBzVXBncmFkZUVuYWJsZWQgeyB0cnVlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lN
ZWRpYUxpc3REaXJlY3RpdmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeU1lZGlhTGlzdERpcmVjdGl2ZS5oCmluZGV4IGQ5OTE0ODFmYWM5NWRiNWY4NTQx
NDAxZjBiNzAxNDA3YjIwMjE5M2IuLjdjYmZmZmU2NjM1YzkyOThjYjk2MTI5YjUyODA5NTMxZWVl
OGFjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeU1lZGlhTGlzdERpcmVjdGl2ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3Nw
L0NvbnRlbnRTZWN1cml0eVBvbGljeU1lZGlhTGlzdERpcmVjdGl2ZS5oCkBAIC0yNyw3ICsyNyw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeURpcmVj
dGl2ZS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQg
cGFyc2UoY29uc3QgU3RyaW5nJik7CiAKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9wbHVnaW5UeXBl
czsKKyAgICBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBt
X3BsdWdpblR5cGVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlz
dC5oCmluZGV4IGNiNmE1ODgwYjgwODVjMDYyZTJjOTBlNWI0NTllMzM4MTMyNzY0ZDMuLjA5OTMz
OTA0ZGU3NzhiMjliMTUxNWI2YzdjOGY5Zjg1ZThiY2RmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmgK
QEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lIYXNoLmgiCiAjaW5jbHVkZSAiQ29udGVudFNl
Y3VyaXR5UG9saWN5U291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeSYgbV9wb2xpY3k7CiAgICAgVmVjdG9yPENvbnRlbnRTZWN1cml0eVBvbGlj
eVNvdXJjZT4gbV9saXN0OwotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX25vbmNlczsKKyAgICBNZW1v
cnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX25vbmNlczsKICAg
ICBIYXNoU2V0PENvbnRlbnRTZWN1cml0eVBvbGljeUhhc2g+IG1faGFzaGVzOwogICAgIE9wdGlv
blNldDxDb250ZW50U2VjdXJpdHlQb2xpY3lIYXNoQWxnb3JpdGhtPiBtX2hhc2hBbGdvcml0aG1z
VXNlZDsKICAgICBTdHJpbmcgbV9kaXJlY3RpdmVOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4IDQzYzAzYmVlODQxNzNhMDIy
ZTE4NDYxZDgwYjg4NWMxYmY5MDI4ZGYuLjI1NzJiN2FmMDM2Mzk3NTkwMDQ2MWM1ZDAwYjZjMWE4
MDliNDQ2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVt
ZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVS
ZWdpc3RyeS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVVJMUGFy
c2VyLmg+CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCkBAIC0yMzUsMTAgKzIzNiwx
MCBAQCB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVk
QXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZQogICAgIGxvY2FsVVJMU2NoZW1lcygpLnJlbW92
ZShzY2hlbWUpOwogfQogCi1zdGF0aWMgSGFzaFNldDxTdHJpbmc+JiBzY2hlbWVzSGFuZGxlZEJ5
U2NoZW1lSGFuZGxlcigpIFdURl9SRVFVSVJFU19MT0NLKHNjaGVtZVJlZ2lzdHJ5TG9jaykKK3N0
YXRpYyBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBzY2hlbWVzSGFuZGxl
ZEJ5U2NoZW1lSGFuZGxlcigpIFdURl9SRVFVSVJFU19MT0NLKHNjaGVtZVJlZ2lzdHJ5TG9jaykK
IHsKICAgICBBU1NFUlQoc2NoZW1lUmVnaXN0cnlMb2NrLmlzSGVsZCgpKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBzZXQ7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IHNldDsKICAgICBy
ZXR1cm4gc2V0LmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TdGF0aWNQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdGF0aWNQYXN0
ZWJvYXJkLmgKaW5kZXggYzA5YjZkZTMxZjJlZGViZTAxODhkYzljNDY2YTI3MWUxYjhiOWUxNC4u
NDI0YzcxYzRiZTJjZTgxNTM4YTkyZTdmNWZhZWExN2U5YzA1YzFhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaApAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTc3LDcgKzc3LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIG1fY3VzdG9t
RGF0YTsKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9ub25EZWZhdWx0RGF0YVR5cGVzOworICAgIE1l
bW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9ub25EZWZhdWx0RGF0YVR5cGVz
OwogICAgIFBhc3RlYm9hcmQ6OkZpbGVDb250ZW50U3RhdGUgbV9maWxlQ29udGVudFN0YXRlIHsg
UGFzdGVib2FyZDo6RmlsZUNvbnRlbnRTdGF0ZTo6Tm9GaWxlT3JJbWFnZURhdGEgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZl
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZl
clByaXZhdGUuaAppbmRleCAyNjM5ZjFiZDlkOWQ0YjNhZjgyYmQwNjA5N2FhYWNjMjU2MWM4NTgz
Li43OGJmM2MzMWY3ZTRhOGFmYzlkZTQ2OGNmNWNiZDg3MDgwYmQ0NDYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5o
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1Jv
YmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIApAQCAtMTkwLDcgKzE5MSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2hhc0F1ZGlvIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVmlkZW8geyBm
YWxzZSB9OwogCi0gICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBVbmlxdWVSZWY8VHJhY2tCdWZmZXI+
PiBtX3RyYWNrQnVmZmVyTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0
b21TdHJpbmcsIFVuaXF1ZVJlZjxUcmFja0J1ZmZlcj4+IG1fdHJhY2tCdWZmZXJNYXA7CiAKICAg
ICBTb3VyY2VCdWZmZXJBcHBlbmRNb2RlIG1fYXBwZW5kTW9kZSB7IFNvdXJjZUJ1ZmZlckFwcGVu
ZE1vZGU6OlNlZ21lbnRzIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IGJlMWI2YzRhNGViMTc2
NGU0ZTVkMzYxZmI5YmY5MjYzZjIzZWU3NjYuLjIxNWQwNTA2OGZhODZkYTBiODk1MDYzYzk3NWJl
YWVkZTZlNmEzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtNjksNiArNjksNyBAQAogI2VuZGlm
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yMDYsNyArMjA3LDcgQEAgcHJpdmF0ZToKICAgICBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGKiBtX2N1cnJlbnRUZXh0VHJhY2s7CiAKICNpZiBIQVZFKEFW
Rk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpCi0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxS
ZXRhaW5QdHI8QVZDRkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdFJlZj4+PiBtX2tleVVSSVRv
UmVxdWVzdE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZl
Y3RvcjxSZXRhaW5QdHI8QVZDRkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdFJlZj4+PiBtX2tl
eVVSSVRvUmVxdWVzdE1hcDsKICAgICBBVkNGQXNzZXRSZXNvdXJjZUxvYWRlckNhbGxiYWNrcyBt
X3Jlc291cmNlTG9hZGVyQ2FsbGJhY2tzOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
CmluZGV4IDk5ZWQ3ZTE0ZTU4ODM4ZWE1OTY1YTE4MDJmYmRjNmI1MGNmMDcwZmMuLjBjYzlkM2Uw
NTFkM2Q4OWM5MWU1NmFhNmViMjI3ZDFiNGVhOTNhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
QEAgLTMwLDggKzMwLDggQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaCIKICNpbmNsdWRlIDxDb3JlTWVkaWEvQ01UaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBPQkpDX0NMQVNTIEFWQXNz
ZXRJbWFnZUdlbmVyYXRvcjsKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNrOwpAQCAtMzg3LDggKzM4
Nyw4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRl
cjsKICAgICBIYXNoTWFwPFJldGFpblB0cjxDRlR5cGVSZWY+LCBSZWZQdHI8V2ViQ29yZUFWRlJl
c291cmNlTG9hZGVyPj4gbV9yZXNvdXJjZUxvYWRlck1hcDsKICAgICBSZXRhaW5QdHI8V2ViQ29y
ZUFWRkxvYWRlckRlbGVnYXRlPiBtX2xvYWRlckRlbGVnYXRlOwotICAgIEhhc2hNYXA8U3RyaW5n
LCBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+PiBtX2tleVVSSVRvUmVx
dWVzdE1hcDsKLSAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxv
YWRpbmdSZXF1ZXN0Pj4gbV9zZXNzaW9uSURUb1JlcXVlc3RNYXA7CisgICAgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGlu
Z1JlcXVlc3Q+PiBtX2tleVVSSVRvUmVxdWVzdE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVz
dD4+IG1fc2Vzc2lvbklEVG9SZXF1ZXN0TWFwOwogCiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRl
bUxlZ2libGVPdXRwdXQ+IG1fbGVnaWJsZU91dHB1dDsKIApAQCAtNDAzLDcgKzQwMyw3IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRj4gbV9t
ZXRhZGF0YVRyYWNrOwogI2VuZGlmCiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluYmFu
ZENoYXB0ZXJUcmFja1ByaXZhdGVBVkZPYmpDPj4gbV9jaGFwdGVyVHJhY2tzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluYmFuZENoYXB0ZXJUcmFj
a1ByaXZhdGVBVkZPYmpDPj4gbV9jaGFwdGVyVHJhY2tzOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkgJiYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxBVk91dHB1
dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXgg
YzRhMzFiZTU1YzUzZTk0ZGRjZjUxNDhlNWQzYTVjYWU4OTMzMjVkZi4uOWY1ZTIyMDMwOTkwMDJi
M2ZlZDhiYzBmZjMzNTRhZTE1MDc4YjRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CiAKIE9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7
CiBPQkpDX0NMQVNTIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcjsKQEAg
LTI0Myw4ICsyNDQsOCBAQCBwcml2YXRlOgogICAgIH07CiAgICAgQ3VycmVudEZyYW1lUGFpbnRl
ciBtX2ltYWdlUGFpbnRlcjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8QXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbT4+IG1fYXVkaW9UcmFja01hcDsKLSAgICBIYXNoTWFwPFN0cmluZywg
UmVmPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBtX3ZpZGVvVHJhY2tNYXA7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWY8QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbT4+IG1fYXVkaW9UcmFja01hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaE1hcDxTdHJpbmcsIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPj4gbV92
aWRlb1RyYWNrTWFwOwogCiAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtT
dGF0ZSB7IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5IH07CiAgICAgTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVOb3RoaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMjY2N2NhZjY5OTIx
MDA1MTIyYWViZjVlMDMxMjBmNmY5ZmJiOGRhNy4uN2VmNGE5OWIwNDFhZjVhNDA2ZmEyYTE2YzVk
MmE3OGUyN2RhNDUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtODI5LDcgKzgy
OSw3IEBAIGVudW0gY2xhc3MgVHJhY2tLaW5kIHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBS
ZWZUPgotdm9pZCB1cGRhdGVUcmFja3NPZktpbmQoSGFzaE1hcDxTdHJpbmcsIFJlZlQ+JiB0cmFj
a01hcCwgVHJhY2tLaW5kIHRyYWNrS2luZCwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3Im
IGN1cnJlbnRUcmFja3MsIFJlZlQgKCppdGVtRmFjdG9yeSkoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSwgY29uc3QgRnVuY3Rpb248dm9pZChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPHR5cGVuYW1l
IHN0ZDo6cmVtb3ZlX3BvaW50ZXI8dHlwZW5hbWUgUmVmVDo6UHRyVHJhaXRzOjpTdG9yYWdlVHlw
ZT46OnR5cGU+LCBpbnQsIFRyYWNrU3RhdGUpPiYgY29uZmlndXJlVHJhY2spCit2b2lkIHVwZGF0
ZVRyYWNrc09mS2luZChNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlQ+
JiB0cmFja01hcCwgVHJhY2tLaW5kIHRyYWNrS2luZCwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVW
ZWN0b3ImIGN1cnJlbnRUcmFja3MsIFJlZlQgKCppdGVtRmFjdG9yeSkoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSwgY29uc3QgRnVuY3Rpb248dm9pZChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPHR5
cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8dHlwZW5hbWUgUmVmVDo6UHRyVHJhaXRzOjpTdG9y
YWdlVHlwZT46OnR5cGU+LCBpbnQsIFRyYWNrU3RhdGUpPiYgY29uZmlndXJlVHJhY2spCiB7CiAg
ICAgVmVjdG9yPFJlZlQ+IHJlbW92ZWRUcmFja3M7CiAgICAgVmVjdG9yPFJlZlQ+IGFkZGVkVHJh
Y2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJ
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVn
aXN0cnkuY3BwCmluZGV4IGFjYWJhMzE0ZGRjYTA1NTNkMjA3NjY4ZGM4ZjE1ZDQ1NmI2ZGU1ZTUu
LmQ5ZTRlZTA0YjBmYTJmNmY0NjhiYzAyYjc4MTkyMmMyNjFiZWM5NWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5jcHAKQEAgLTgw
LDkgKzgwLDkgQEAgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0
PFN0cmluZz4mIGRlZmF1bHRTdXBwb3J0ZWRJbWFnZVR5cGUKICAgICByZXR1cm4gZGVmYXVsdFN1
cHBvcnRlZEltYWdlVHlwZXM7CiB9CiAKLUhhc2hTZXQ8U3RyaW5nPiYgYWRkaXRpb25hbFN1cHBv
cnRlZEltYWdlVHlwZXMoKQorTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYg
YWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxIYXNoU2V0PFN0cmluZz4+IGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJp
bmc+PiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKICAgICByZXR1cm4gYWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5oCmluZGV4IDE0YWIyMmI0Y2MyOGU3NTFkYTVhMjgz
NmM3NzNiN2Y0ZTNjOTE3NzYuLjA1NmE5ZDdlMjk2OTVjNzYzZjEwYTMwYjUzMmVmMmZhYTlhZDQ3
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJl
Z2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVn
aXN0cnkuaApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgZGVmYXVsdFN1
cHBvcnRlZEltYWdlVHlwZXMoKTsKLUhhc2hTZXQ8U3RyaW5nPiYgYWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMoKTsKK01lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIGFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzRm9yVGVzdGlu
Zyhjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTdXBwb3J0ZWRJbWFnZVR5
cGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggOWY5MGVhYTM4
NTM3YWQwNjg4ZDg0M2IzZDhkODBiYjIyZTc4MzY4OC4uMjY0MWRlZTM5NmY5OWUyYmY0NTM1NzMy
Y2I5YWNmODNiOWU1MDJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVBy
ZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1
ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVDYXN0c0NG
Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+
CiAKQEAgLTk5NCw4ICs5OTUsOCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIExvY2sgbV9mYW1p
bHlOYW1lVG9Gb250RGVzY3JpcHRvcnNMb2NrOwotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVu
aXF1ZV9wdHI8SW5zdGFsbGVkRm9udEZhbWlseT4+IG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0
b3JzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnNMb2Nr
KTsKLSAgICBIYXNoTWFwPFN0cmluZywgSW5zdGFsbGVkRm9udD4gbV9wb3N0U2NyaXB0TmFtZVRv
Rm9udERlc2NyaXB0b3JzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPEluc3RhbGxlZEZvbnRGYW1pbHk+PiBtX2ZhbWlseU5hbWVUb0Zv
bnREZXNjcmlwdG9ycyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZmFtaWx5TmFtZVRvRm9udERlc2Ny
aXB0b3JzTG9jayk7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBJ
bnN0YWxsZWRGb250PiBtX3Bvc3RTY3JpcHROYW1lVG9Gb250RGVzY3JpcHRvcnM7CiAgICAgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250czsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZv
bnREYXRhYmFzZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcAppbmRleCA1NzYyZTA4OTNkOTkz
YjQzOWI5MDU4OTJiMTYyNTY3NjA5YjViZDViLi4xMTAyMjQzY2VlNjIxYzAxZGEyYTU1ZGFiMzM4
OThhZTJmOTQwOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3Bw
CkBAIC0yODksNyArMjg5LDcgQEAgVmVjdG9yPFJldGFpblB0cjxDVEZvbnREZXNjcmlwdG9yUmVm
Pj4gU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OmNhc2NhZGVMaXN0KGMKICAgICByZXR1cm4g
Y2FzY2FkZUxpc3Qoc3lzdGVtRm9udFBhcmFtZXRlcnMoZGVzY3JpcHRpb24sIGNzc0ZhbWlseSwg
c3lzdGVtRm9udEtpbmQsIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKSwgc3lzdGVtRm9udEtpbmQp
OwogfQogCi1zdGF0aWMgU3RyaW5nIGdlbmVyaWNGYW1pbHkoY29uc3QgU3RyaW5nJiBsb2NhbGUs
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBtYXAsIENGU3RyaW5nUmVmIGN0S2V5KQorc3RhdGlj
IFN0cmluZyBnZW5lcmljRmFtaWx5KGNvbnN0IFN0cmluZyYgbG9jYWxlLCBNZW1vcnlDb21wYWN0
Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIG1hcCwgQ0ZTdHJpbmdSZWYgY3RLZXkp
CiB7CiAgICAgcmV0dXJuIG1hcC5lbnN1cmUobG9jYWxlLCBbJl0gewogICAgICAgICBhdXRvIGRl
c2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVGb3JDU1NGYW1pbHkoY3RL
ZXksIGxvY2FsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERh
dGFiYXNlQ29yZVRleHQuaAppbmRleCA1ZDMzNWZjMjRlNzUzMTlkNWE4MDMzZDU0MjljYTEyN2Q2
MTlkYWYyLi5jM2I1NzFkYjllMjUzNjY1OTk1YjhjNjlmNWU4MThhNTY4NDcxNzVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0
YWJhc2VDb3JlVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlIDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTExMywxMSArMTE0LDExIEBAIHByaXZhdGU6CiAK
ICAgICBIYXNoTWFwPENhc2NhZGVMaXN0UGFyYW1ldGVycywgVmVjdG9yPFJldGFpblB0cjxDVEZv
bnREZXNjcmlwdG9yUmVmPj4sIENhc2NhZGVMaXN0UGFyYW1ldGVyczo6SGFzaCwgU2ltcGxlQ2xh
c3NIYXNoVHJhaXRzPENhc2NhZGVMaXN0UGFyYW1ldGVycz4+IG1fc3lzdGVtRm9udENhY2hlOwog
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zZXJpZkZhbWlsaWVzOwotICAgIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IG1fc2Fuc1NlcmlmZXJpZkZhbWlsaWVzOwotICAgIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IG1fY3Vyc2l2ZUZhbWlsaWVzOwotICAgIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IG1fZmFudGFzeUZhbWlsaWVzOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1f
bW9ub3NwYWNlRmFtaWxpZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IG1fc2VyaWZGYW1pbGllczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zYW5zU2VyaWZlcmlmRmFtaWxpZXM7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fY3Vyc2l2ZUZhbWls
aWVzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBt
X2ZhbnRhc3lGYW1pbGllczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4gbV9tb25vc3BhY2VGYW1pbGllczsKIH07CiAKIGlubGluZSB2b2lkIGFkZChI
YXNoZXImIGhhc2hlciwgY29uc3QgU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OkNhc2NhZGVM
aXN0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9U
aHJlYWRDaGVjay5tbQppbmRleCAwNThiN2U5Y2YxMDUzZGVhMDUwYTgyMWY5OTg5Y2NjOWNmOThj
YmZlLi4wMTg3ZjVhMzFlODI0NjVlYzk3YjVmNjFhMDNhMmU2YjRmNTVkYThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCkBAIC0yOCw4ICsyOCw4IEBACiAK
ICNpZiBQTEFURk9STShNQUMpCiAKLSNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAj
aW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRp
b24oY29uc3QgY2hhciogZnVuY3Rpb24sIFdlYkNvcmU6OlRocmVhZFZpb2xhdGlvbgogICAgIGlm
IChyb3VuZCA+PSBNYXhpbXVtVGhyZWFkVmlvbGF0aW9uUm91bmQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGxvZ2dlZEZ1bmN0
aW9uczsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hTZXQ8U3RyaW5nPj4gbG9nZ2VkRnVuY3Rpb25zOwogICAgIHN3aXRjaCAodGhyZWFkVmlvbGF0
aW9uQmVoYXZpb3Jbcm91bmRdKSB7CiAgICAgICAgIGNhc2UgTm9UaHJlYWRDaGVjazoKICAgICAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCA3ZjJlYjQ1ZWYxMTg2ZTBmNzUxZTcz
MTEwODU5ZmMxMTJhZDY2MGQyLi43ZGZhNzFlMzJiZTJjNDliYmVkY2M3NDQzYjBlNDcwNzEzODli
NWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtMzksOSArMzksOSBAQAogI2luY2x1ZGUgIkZsb2F0
U2l6ZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
TWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CkBAIC0xMzMsNyArMTMzLDcgQEAg
cHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9vYnNlcnZlcnM7CiAgICAgU3Ry
aW5nIG1faWQ7CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIG1fYWN0aXZlVmlkZW9UcmFj
ayB7IG51bGxwdHIgfTsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlPj4gbV90cmFja1NldDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CiAg
ICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKaW5kZXggZWViZDg2YzMyMmNmNzU1
M2M1YTRmMzI3NmFlODdkYjgyM2JkNDllNi4uMmExYjIzZWQxY2Q4NzliOTRiYWU4YjdjNDUwMGI3
NjRkYzExNWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnlJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnlJbXBsLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0YS5o
IgogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNl
dC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVJMSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg2LDcgKzg2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZEJsb2JEYXRhKGNvbnN0IFN0cmluZyYgdXJsLCBS
ZWZQdHI8QmxvYkRhdGE+JiYpOwogCiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX2Jsb2JS
ZWZlcmVuY2VzOwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8QmxvYkRhdGE+PiBtX2Jsb2Jz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPEJsb2JE
YXRhPj4gbV9ibG9iczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuaAppbmRleCBk
MGUxNmY3YmI1MjU5M2M3OTkyZmFjOWRkMmNmYjk1NzlmODU4ZDNiLi40MGU5YTAxZjAwMWQwOTRl
Njg1YjAzY2I3NGNkMDRjN2U3NjVjZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5j
bHVkZSAiUHJvdGVjdGlvblNwYWNlSGFzaC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0
YS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNjIsNyAr
NjIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSGFzaE1hcDxzdGQ6OnBhaXI8U3RyaW5n
IC8qIHBhcnRpdGlvbk5hbWUgKi8sIFByb3RlY3Rpb25TcGFjZT4sIENyZWRlbnRpYWw+IG1fcHJv
dGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX29yaWdp
bnNXaXRoQ3JlZGVudGlhbHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3Ry
aW5nPiBtX29yaWdpbnNXaXRoQ3JlZGVudGlhbHM7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBQcm90ZWN0aW9uU3BhY2U+IFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXA7CiAg
ICAgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCBtX3BhdGhUb0RlZmF1bHRQcm90ZWN0
aW9uU3BhY2VNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAzMzA5OTQ1YmQ0OWE2OTBhNjVmNzNlYzNl
ZDNkN2IyNDVhYzAyNzJkLi5kZWNhMTc2NTIzYjg4MzhmZDlkMGNmMzY1YWE0OWMyNGJlMDJkZGU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMjY2LDcgKzI2
Niw3IEBAIHByaXZhdGU6CiAjaWYgSEFWRShDT09LSUVfQ0hBTkdFX0xJU1RFTkVSX0FQSSkKICAg
ICBib29sIG1fZGlkUmVnaXN0ZXJDb29raWVMaXN0ZW5lcnMgeyBmYWxzZSB9OwogICAgIFJldGFp
blB0cjxOU011dGFibGVTZXQ+IG1fc3Vic2NyaWJlZERvbWFpbnNGb3JDb29raWVDaGFuZ2VzOwot
ICAgIEhhc2hNYXA8U3RyaW5nLCBIYXNoU2V0PENvb2tpZUNoYW5nZU9ic2VydmVyKj4+IG1fY29v
a2llQ2hhbmdlT2JzZXJ2ZXJzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0
cmluZywgSGFzaFNldDxDb29raWVDaGFuZ2VPYnNlcnZlcio+PiBtX2Nvb2tpZUNoYW5nZU9ic2Vy
dmVyczsKICNlbmRpZgogCiAgICAgQ3JlZGVudGlhbFN0b3JhZ2UgbV9jcmVkZW50aWFsU3RvcmFn
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWZlcmVuY2VkU1ZHUmVz
b3VyY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJlbmNlZFNWR1Jlc291cmNl
cy5oCmluZGV4IDA3N2JiYmE4OGJhNzg0YjlhOWQyYTFhZGEwZTI0Y2RhMTQ0YWM2NzkuLjgxNmQ3
ZDdhYzYzMjc1ODY3MGI2M2Q5YWVlNmEyNmE3MjMzMzM0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZWZlcmVuY2VkU1ZHUmVzb3VyY2VzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlZmVyZW5jZWRTVkdSZXNvdXJjZXMuaApAQCAtMjYsOCArMjYsOCBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0
Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTY1LDcgKzY1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZUNsaWVudEZvclRhcmdldChEb2N1bWVudCYsIGNvbnN0
IEF0b21TdHJpbmcmKTsKIAogICAgIFJlbmRlckVsZW1lbnQmIG1fcmVuZGVyZXI7Ci0gICAgSGFz
aE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU1ZHUmVzb3VyY2VFbGVtZW50Q2xp
ZW50Pj4gbV9lbGVtZW50Q2xpZW50czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU1ZHUmVzb3VyY2VFbGVtZW50Q2xpZW50
Pj4gbV9lbGVtZW50Q2xpZW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAppbmRleCA5YmJkNzdiYmNjNTNi
NThmOGQ5MDUxNmNkYmMxMzlhM2JkZDFmZWRlLi5jZmE2MmVlMzc1MGNkMzBlNmJkNTc4ZjVkMmIw
NTU3ZWI1OTY3MWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9u
cy5oCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC03Niw5ICs3Nyw5IEBAIHByaXZh
dGU6CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgV2Vha0hhc2hTZXQ8U1ZHU1ZHRWxl
bWVudD4gbV90aW1lQ29udGFpbmVyczsgLy8gRm9yIFNWRyAxLjIgc3VwcG9ydCB0aGlzIHdpbGwg
bmVlZCB0byBiZSBtYWRlIG1vcmUgZ2VuZXJhbC4KICAgICBXZWFrSGFzaFNldDxTVkdGb250RmFj
ZUVsZW1lbnQ+IG1fc3ZnRm9udEZhY2VFbGVtZW50czsKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcs
IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKj4gbV9yZXNvdXJjZXM7Ci0gICAgSGFzaE1hcDxB
dG9tU3RyaW5nLCBXZWFrSGFzaFNldDxFbGVtZW50Pj4gbV9wZW5kaW5nUmVzb3VyY2VzOyAvLyBS
ZXNvdXJjZXMgdGhhdCBhcmUgcGVuZGluZy4KLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtI
YXNoU2V0PEVsZW1lbnQ+PiBtX3BlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFsOyAvLyBSZXNvdXJj
ZXMgdGhhdCBhcmUgcGVuZGluZyBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsLgorICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFJlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyKj4gbV9yZXNvdXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8
QXRvbVN0cmluZywgV2Vha0hhc2hTZXQ8RWxlbWVudD4+IG1fcGVuZGluZ1Jlc291cmNlczsgLy8g
UmVzb3VyY2VzIHRoYXQgYXJlIHBlbmRpbmcuCisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8QXRvbVN0cmluZywgV2Vha0hhc2hTZXQ8RWxlbWVudD4+IG1fcGVuZGluZ1Jlc291cmNl
c0ZvclJlbW92YWw7IC8vIFJlc291cmNlcyB0aGF0IGFyZSBwZW5kaW5nIGFuZCBzY2hlZHVsZWQg
Zm9yIHJlbW92YWwuCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR1Jlc291cmNlc0NhY2hlPiBtX3Jl
c291cmNlc0NhY2hlOwogCiAgICAgVmVjdG9yPFJlZjxTVkdFbGVtZW50Pj4gbV9yZWJ1aWxkRWxl
bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCBjYzJiYjhhYTU5M2YyNGE2N2JkMjA1
ZDcxOTQyYjA1N2UyOGM5NmEwLi41M2VkZGYzYWY3YTIxM2NmMjlmNTQzYjUyYTc1YzZiN2IzNmJk
NWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTExNSw5ICsxMTUsNiBAQCBwcml2YXRl
OgogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwogICAgIERlcXVlPFJlZlB0
cjxFdmVudD4+IG1fcGVuZGluZ0V2ZW50czsKICAgICBib29sIG1fd2FzVGVybWluYXRlZCB7IGZh
bHNlIH07Ci0jaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNm
b3JtZXJzOwotI2VuZGlmCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgbV9j
bGllbnRJZGVudGlmaWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IGVkNzg5M2NiYzgyMmE3ODM1ZjgwNGQ1OTJhNmI0N2FkNGY4ZTc5ZDIu
LjIwNWM1YzRmNmNiMWYwMjNjMDAwYWQ4MWJjZWZmYzk3NzFjZWNjOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTM5LDggKzM5LDggQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPG1lbW9yeT4K
ICNpbmNsdWRlIDx3dGYvRml4ZWRWZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9i
aW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvVVJM
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgpAQCAtMjE3LDcgKzIxNyw3IEBA
IHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8Q3J5cHRvPiBtX2NyeXB0bzsKIAogICAgIFdl
YWtQdHI8U2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI+IG1fbWFpblNjcmlwdFNvdXJjZVByb3Zp
ZGVyOwotICAgIEhhc2hNYXA8VVJMLCBXZWFrSGFzaFNldDxTY3JpcHRCdWZmZXJTb3VyY2VQcm92
aWRlcj4+IG1faW1wb3J0ZWRTY3JpcHRzU291cmNlUHJvdmlkZXJzOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgV2Vha0hhc2hTZXQ8U2NyaXB0QnVmZmVyU291cmNlUHJv
dmlkZXI+PiBtX2ltcG9ydGVkU2NyaXB0c1NvdXJjZVByb3ZpZGVyczsKIAogICAgIFJlZlB0cjxX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyPiBtX21l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDlhNjZkNDhi
MGEyOWQ5ZjI5M2EzMmJmZmU4NGE1N2MwZDc3NzI3YTQuLmJiMTUwZGZkODc2NDc3MGM2MWIyNmIy
MGRiOTA2MmNkNmQzOTVhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgKQEAgLTM1LDcgKzM1LDcgQEAK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIldvcmtlclR5cGUuaCIK
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKQEAgLTk1LDcgKzk1LDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7CiAg
ICAgV29ya2VyVHlwZSB3b3JrZXJUeXBlOwogICAgIGJvb2wgbG9hZGVkRnJvbURpc2s7CiAgICAg
c3RkOjpvcHRpb25hbDxMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZD4gbGFzdE5hdmlnYXRp
b25XYXNBcHBJbml0aWF0ZWQ7Ci0gICAgSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0PiBzY3Jp
cHRSZXNvdXJjZU1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIElt
cG9ydGVkU2NyaXB0PiBzY3JpcHRSZXNvdXJjZU1hcDsKICAgICBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7
CiAgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBuYXZpZ2F0aW9uUHJlbG9hZFN0YXRlOwogCkBA
IC0xNjQsNyArMTY0LDcgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2RlKERlY29kZXIKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2NyaXB0
UmVzb3VyY2VNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBJbXBv
cnRlZFNjcmlwdD4gc2NyaXB0UmVzb3VyY2VNYXA7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
Y3JpcHRSZXNvdXJjZU1hcCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9u
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdp
c3RyYXRpb25EYXRhYmFzZS5jcHAKaW5kZXggZjE0OGEzZGFlYjFjNzUwMTYyNTIzMTY5NGZmNTg0
NTU4NGVhNTlhMC4uMjBlN2E3Njk4YzE2NDUzYTRlNWI1NGQ2Mzg2MjVjOWQ1YmJlZTcxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRp
b25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBzdHJ1Y3QgSW1w
b3J0ZWRTY3JpcHRBdHRyaWJ1dGVzIHsKICAgICB9CiB9OwogCi1zdGF0aWMgSGFzaE1hcDxVUkws
IEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcz4gc3RyaXBTY3JpcHRTb3VyY2VzKGNvbnN0IEhhc2hN
YXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYgbWFwKQor
c3RhdGljIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0ZXM+IHN0cmlwU2NyaXB0
U291cmNlcyhjb25zdCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiBtYXApCiB7CiAgICAgSGFzaE1hcDxV
UkwsIEltcG9ydGVkU2NyaXB0QXR0cmlidXRlcz4gbWFwV2l0aG91dFNjcmlwdHM7CiAgICAgZm9y
IChhdXRvJiBwYWlyIDogbWFwKQpAQCAtMTM3LDkgKzEzNyw5IEBAIHN0YXRpYyBIYXNoTWFwPFVS
TCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiBzdHJpcFNjcmlwdFNvdXJjZXMoY29uc3QgSGFz
aE1hcDxVCiAgICAgcmV0dXJuIG1hcFdpdGhvdXRTY3JpcHRzOwogfQogCi1zdGF0aWMgSGFzaE1h
cDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHBvcHVsYXRl
U2NyaXB0U291cmNlc0Zyb21EaXNrKFNXU2NyaXB0U3RvcmFnZSYgc2NyaXB0U3RvcmFnZSwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5LCBIYXNoTWFw
PFVSTCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiYmIG1hcCkKK3N0YXRpYyBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0
ZWRTY3JpcHQ+IHBvcHVsYXRlU2NyaXB0U291cmNlc0Zyb21EaXNrKFNXU2NyaXB0U3RvcmFnZSYg
c2NyaXB0U3RvcmFnZSwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0
cmF0aW9uS2V5LCBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiYmIG1hcCkK
IHsKLSAgICBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNj
cmlwdD4gaW1wb3J0ZWRTY3JpcHRzOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFw
PFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gaW1wb3J0ZWRT
Y3JpcHRzOwogICAgIGZvciAoYXV0byYgcGFpciA6IG1hcCkgewogICAgICAgICBhdXRvIGltcG9y
dGVkU2NyaXB0ID0gc2NyaXB0U3RvcmFnZS5yZXRyaWV2ZShyZWdpc3RyYXRpb25LZXksIHBhaXIu
a2V5KTsKICAgICAgICAgaWYgKCFpbXBvcnRlZFNjcmlwdCkgewpAQCAtNDgxLDcgKzQ4MSw3IEBA
IGJvb2wgUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmRvUHVzaENoYW5nZXMoY29uc3QgVmVjdG9yPFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YT4mCiAgICAgICAgIEFTU0VSVChtYWluU2NyaXB0KTsKICAg
ICAgICAgaWYgKCFtYWluU2NyaXB0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiBpbXBvcnRlZFNjcmlwdHM7CisgICAgICAgIE1l
bW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiBpbXBvcnRlZFNj
cmlwdHM7CiAgICAgICAgIGZvciAoYXV0byYgW3NjcmlwdFVSTCwgc2NyaXB0XSA6IGRhdGEuc2Ny
aXB0UmVzb3VyY2VNYXApIHsKICAgICAgICAgICAgIGF1dG8gaW1wb3J0ZWRTY3JpcHQgPSBzY3Jp
cHRTdG9yYWdlLnN0b3JlKGRhdGEucmVnaXN0cmF0aW9uLmtleSwgc2NyaXB0VVJMLCBzY3JpcHQu
c2NyaXB0KTsKICAgICAgICAgICAgIEFTU0VSVChpbXBvcnRlZFNjcmlwdCk7CkBAIC01NDYsNyAr
NTQ2LDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKIAog
ICAgICAgICBhdXRvIHJlZmVycmVyUG9saWN5ID0gc3FsLT5jb2x1bW5UZXh0KDEwKTsKIAotICAg
ICAgICBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlw
dD4gc2NyaXB0UmVzb3VyY2VNYXA7CisgICAgICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gc2NyaXB0
UmVzb3VyY2VNYXA7CiAgICAgICAgIGF1dG8gc2NyaXB0UmVzb3VyY2VNYXBEYXRhU3BhbiA9IHNx
bC0+Y29sdW1uQmxvYkFzU3BhbigxMSk7CiAgICAgICAgIGlmIChzY3JpcHRSZXNvdXJjZU1hcERh
dGFTcGFuLnNpemUoKSkgewogICAgICAgICAgICAgV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlciBz
Y3JpcHRSZXNvdXJjZU1hcERlY29kZXIoc2NyaXB0UmVzb3VyY2VNYXBEYXRhU3Bhbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlv
blN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0
cmF0aW9uU3RvcmUuY3BwCmluZGV4IDIxOTA1NzYxNjM4OTc5MmVjM2FjNjAxNjUxODEyYzM3NTU5
MjI4Y2QuLjQ4MmQ3MTA4YjBmZjE0ODBhZGQyN2I3NmZkY2I3OGZlY2EzM2ZkYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0
cmF0aW9uU3RvcmUuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBSZWdpc3RyYXRpb25TdG9y
ZTo6YWRkUmVnaXN0cmF0aW9uRnJvbURhdGFiYXNlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYm
IGQKICAgICBtX3NlcnZlci5hZGRSZWdpc3RyYXRpb25Gcm9tU3RvcmUoV1RGTW92ZShkYXRhKSk7
CiB9CiAKLXZvaWQgUmVnaXN0cmF0aW9uU3RvcmU6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9EaXNr
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRC
dWZmZXImJiBtYWluU2NyaXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVk
U2NyaXB0cykKK3ZvaWQgUmVnaXN0cmF0aW9uU3RvcmU6OmRpZFNhdmVXb3JrZXJTY3JpcHRzVG9E
aXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3Jp
cHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkws
IFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpCiB7CiAgICAgbV9zZXJ2ZXIuZGlkU2F2
ZVdvcmtlclNjcmlwdHNUb0Rpc2soc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUobWFp
blNjcmlwdCksIFdURk1vdmUoaW1wb3J0ZWRTY3JpcHRzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgK
aW5kZXggM2IzY2Q5ODdiNzFlNDI0NzFmMWUyMjY2NzUwNzA1OTQ5MWUyY2IzZC4uMDVlYTBiYzM2
MWQ0ZGUzNmYxYjAzOTJhMWJhMDc5NzJkOWVmNjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaApAQCAt
NjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb25Gcm9tRGF0YWJh
c2UoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYpOwogICAgIHZvaWQgZGF0YWJhc2VGYWlsZWRU
b09wZW4oKTsKICAgICB2b2lkIGRhdGFiYXNlT3BlbmVkQW5kUmVjb3Jkc0ltcG9ydGVkKCk7Ci0g
ICAgdm9pZCBkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4m
JiBpbXBvcnRlZFNjcmlwdHMpOworICAgIHZvaWQgZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2so
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2Ny
aXB0cyk7CiAKICAgICBTV1NlcnZlciYgc2VydmVyKCkgeyByZXR1cm4gbV9zZXJ2ZXI7IH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5j
cHAKaW5kZXggZGExYjA5YTUzNTdlOGZiNTU1MmNiZmNlMGE0NTZkNjI4MzM1MjdmNi4uMzRlNDQ5
NTc5Y2NhMjI2M2RjOGUwYWZhYmI4OTE2NDUyNTU1MmQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTIwOCw3ICsyMDgs
NyBAQCB2b2lkIFNXU2VydmVyOjphZGRSZWdpc3RyYXRpb25Gcm9tU3RvcmUoU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiYgZGF0YSkKICAgICB9KTsKIH0KIAotdm9pZCBTV1NlcnZlcjo6ZGlkU2F2
ZVdvcmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3Jp
cHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKQordm9pZCBTV1NlcnZlcjo6ZGlkU2F2ZVdvcmtl
clNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cykKIHsKICAgICBpZiAo
YXV0byB3b3JrZXIgPSB3b3JrZXJCeUlEKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKICAgICAg
ICAgd29ya2VyLT5kaWRTYXZlU2NyaXB0c1RvRGlzayhXVEZNb3ZlKG1haW5TY3JpcHQpLCBXVEZN
b3ZlKGltcG9ydGVkU2NyaXB0cykpOwpAQCAtNzE3LDcgKzcxNyw3IEBAIHZvaWQgU1dTZXJ2ZXI6
OnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oQ29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgU2VyCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbihjb25uZWN0aW9uLmlkZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgU1dTZXJ2
ZXI6OnVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpv
YkRhdGFJZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeSYgY29lcCwgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB0
eXBlLCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlw
dD4mJiBzY3JpcHRSZXNvdXJjZU1hcCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQordm9pZCBTV1NlcnZl
cjo6dXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9i
RGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTY3JpcHRCdWZmZXImIHNjcmlwdCwgY29uc3QgQ2VydGlmaWNhdGVJ
bmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5JiBjb2VwLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5
cGUsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3JpcHRSZXNvdXJjZU1hcCwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyKQogewogICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEgeyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uLmRhdGEoKSwgU2VydmljZVdv
cmtlcklkZW50aWZpZXI6OmdlbmVyYXRlKCksIHNjcmlwdCwgY2VydGlmaWNhdGVJbmZvLCBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvZXAsIHJlZmVycmVyUG9saWN5LCB1cmwsIHR5cGUsIGZhbHNl
LCBjbGllbnRJc0FwcEluaXRpYXRlZEZvclJlZ2lzdHJhYmxlRG9tYWluKFJlZ2lzdHJhYmxlRG9t
YWluKHVybCkpLCBXVEZNb3ZlKHNjcmlwdFJlc291cmNlTWFwKSwgc2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyLCB7IH0gfSk7CiB9CkBAIC04MDEsNyArODAxLDcgQEAgdm9pZCBTV1NlcnZlcjo6
aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSkK
ICAgICB9CiAKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3Njb3BlVG9SZWdpc3RyYXRpb25N
YXAuZ2V0KGRhdGEucmVnaXN0cmF0aW9uLmtleSkuZ2V0KCk7Ci0gICAgYXV0byB3b3JrZXIgPSBT
V1NlcnZlcldvcmtlcjo6Y3JlYXRlKCp0aGlzLCAqcmVnaXN0cmF0aW9uLCBkYXRhLnNjcmlwdFVS
TCwgZGF0YS5zY3JpcHQsIGRhdGEuY2VydGlmaWNhdGVJbmZvLCBkYXRhLmNvbnRlbnRTZWN1cml0
eVBvbGljeSwgZGF0YS5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCBTdHJpbmcgeyBkYXRhLnJl
ZmVycmVyUG9saWN5IH0sIGRhdGEud29ya2VyVHlwZSwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3Jp
cHQ+IHsgZGF0YS5zY3JpcHRSZXNvdXJjZU1hcCB9KTsKKyAgICBhdXRvIHdvcmtlciA9IFNXU2Vy
dmVyV29ya2VyOjpjcmVhdGUoKnRoaXMsICpyZWdpc3RyYXRpb24sIGRhdGEuc2NyaXB0VVJMLCBk
YXRhLnNjcmlwdCwgZGF0YS5jZXJ0aWZpY2F0ZUluZm8sIGRhdGEuY29udGVudFNlY3VyaXR5UG9s
aWN5LCBkYXRhLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3ksIFN0cmluZyB7IGRhdGEucmVmZXJy
ZXJQb2xpY3kgfSwgZGF0YS53b3JrZXJUeXBlLCBkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHsgZGF0YS5zY3JpcHRSZXNvdXJjZU1hcCB9KTsKIAogICAg
IGF1dG8qIGNvbm5lY3Rpb24gPSB3b3JrZXItPmNvbnRleHRDb25uZWN0aW9uKCk7CiAgICAgQVNT
RVJUKGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5oCmluZGV4IDRlMjlmYmU0YzNkOTFiNGViOTc2Mzk3ZGZlYWJkNDliOTdj
MWJiOTcuLmQzYzQ5ZjJhYzBjMWE0YTNlZTY0MDMyZTRlMzc2ZDM4MGI4YWQ0MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTQ0
LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYv
Um9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpA
QCAtMTU2LDcgKzE1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlv
bkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKICAgICB2b2lkIHN0YXJ0
U2NyaXB0RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBTV1NlcnZlclJlZ2lzdHJh
dGlvbiYpOwogCi0gICAgdm9pZCB1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBT
Y3JpcHRCdWZmZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYsIHN0ZDo6b3B0aW9u
YWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllcik7CisgICAgdm9pZCB1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBT
Y3JpcHRCdWZmZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVk
U2NyaXB0PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVu
dChTV1NlcnZlcldvcmtlciYpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU1dTZXJ2ZXJX
b3JrZXImKTsKIApAQCAtMTk3LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc29sdmVS
ZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKICAgICB2
b2lkIGFkZFJlZ2lzdHJhdGlvbkZyb21TdG9yZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJik7
Ci0gICAgdm9pZCBkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZl
cj4mJiBpbXBvcnRlZFNjcmlwdHMpOworICAgIHZvaWQgZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rp
c2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIE1l
bW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVk
U2NyaXB0cyk7CiAgICAgdm9pZCByZWdpc3RyYXRpb25TdG9yZUltcG9ydENvbXBsZXRlKCk7CiAg
ICAgdm9pZCByZWdpc3RyYXRpb25TdG9yZURhdGFiYXNlRmFpbGVkVG9PcGVuKCk7CiAgICAgdm9p
ZCBzdG9yZVJlZ2lzdHJhdGlvbkZvcldvcmtlcihTV1NlcnZlcldvcmtlciYpOwpAQCAtMjkxLDcg
KzI5Miw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgV2Vha1B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4+IG1fc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyVG9SZWdpc3RyYXRpb25NYXA7CiAgICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciwgVW5pcXVlUmVmPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPj4g
bV9jbGllbnRzQnlJZDsKICAgICBIYXNoTWFwPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4gbV9jbGllbnRUb0NvbnRy
b2xsaW5nUmVnaXN0cmF0aW9uOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXA7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRN
YXA7CiAKICAgICBVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmlnaW5TdG9yZTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0cmF0aW9uU3RvcmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCA1NjliMWFjMzBlMmQ0Mjk0
M2FjYzk1NWM4OWVlZWI5NDE4N2E0ZDAzLi5mNjI3MDk3YTE3NDFmNWFlZDRjYTAwN2M4NDIzZDQ3
NTlmMDdjOTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTY1
LDcgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVBY3RpdmF0
ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRl
cm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
U2NyaXB0QnVmZmVyJiwgY29uc3QgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVk
U2NyaXB0cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGZpcmVQdXNoRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlyZU5vdGlmaWNhdGlvbkV2
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBOb3RpZmljYXRpb25EYXRhJiwgTm90
aWZpY2F0aW9uRXZlbnRUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IGQxOWU5ZWFlYWNlZGZmZDlhYWViZGIxMTk1MWM4Yzk3YzEw
ZWNkYWMuLjVjNmIyZGJkYWIzYjc0YmIzZmYzOTZiM2Q5OGRhZjhlZTUxYTJmMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFNXU2VydmVyV29ya2VyKiBTV1NlcnZlcldvcmtl
cjo6ZXhpc3RpbmdXb3JrZXJGb3JJZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJJZGVudGlmCiB9CiAK
IC8vIEZJWE1FOiBVc2Ugci12YWx1ZSByZWZlcmVuY2VzIGZvciBzY3JpcHQgYW5kIGNvbnRlbnRT
ZWN1cml0eVBvbGljeQotU1dTZXJ2ZXJXb3JrZXI6OlNXU2VydmVyV29ya2VyKFNXU2VydmVyJiBz
ZXJ2ZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTY3JpcHRCdWZmZXImIHNjcmlwdCwgY29uc3QgQ2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5JiBjcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCBTdHJpbmcmJiByZWZlcnJlclBvbGljeSwg
V29ya2VyVHlwZSB0eXBlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBIYXNo
TWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3Jp
cHRSZXNvdXJjZU1hcCkKK1NXU2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtlcihTV1NlcnZlciYg
c2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeSYgY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXJQb2xpY3ks
IFdvcmtlclR5cGUgdHlwZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6
OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwKQogICAgIDogbV9zZXJ2ZXIoc2Vy
dmVyKQogICAgICwgbV9yZWdpc3RyYXRpb25LZXkocmVnaXN0cmF0aW9uLmtleSgpKQogICAgICwg
bV9yZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uKQpAQCAtMjY4LDcgKzI2OCw3IEBAIHZvaWQgU1dT
ZXJ2ZXJXb3JrZXI6OnNldFNjcmlwdFJlc291cmNlKFVSTCYmIHVybCwgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOjpJbXBvCiAgICAgbV9zY3JpcHRSZXNvdXJjZU1hcC5zZXQoV1RGTW92ZSh1cmwp
LCBXVEZNb3ZlKHNjcmlwdCkpOwogfQogCi12b2lkIFNXU2VydmVyV29ya2VyOjpkaWRTYXZlU2Ny
aXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0
QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cykKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmRpZFNhdmVT
Y3JpcHRzVG9EaXNrKFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cykKIHsKICAg
ICAvLyBTZW5kIG1tYXAnZCB2ZXJzaW9uIG9mIHRoZSBzY3JpcHRzIHRvIHRoZSBTZXJ2aWNlV29y
a2VyIHByb2Nlc3Mgc28gd2UgY2FuIHNhdmUgZGlydHkgbWVtb3J5LgogICAgIGlmIChhdXRvKiBj
b250ZXh0Q29ubmVjdGlvbiA9IHRoaXMtPmNvbnRleHRDb25uZWN0aW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgK
aW5kZXggNzE3ZDU1OWVkYmYzODFiMDVjNTcyMGU1OGU2YzQ5ZWI2YzZkMDdjNS4uOWJkNTY3YzNj
Yjk3MTE1MTg4OTc5NDljMjE5MDg1NjU4MmY3NjU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5I
b29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIApAQCAtMTA2LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGZpbmRDbGllbnRCeVZpc2libGVJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgY2xpZW50
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKT4mJik7CiAgICAgdm9pZCBtYXRjaEFsbChjb25z
dCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJiwgU2VydmljZVdvcmtlckNsaWVudHNN
YXRjaEFsbENhbGxiYWNrJiYpOwogICAgIHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoVVJMJiYsIFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmJik7Ci0gICAgdm9pZCBkaWRT
YXZlU2NyaXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBIYXNoTWFwPFVSTCwg
U2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cyk7CisgICAgdm9pZCBkaWRTYXZlU2NyaXB0
c1RvRGlzayhTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOwogCiAgICAgdm9p
ZCBza2lwV2FpdGluZygpOwogICAgIGJvb2wgaXNTa2lwV2FpdGluZ0ZsYWdTZXQoKSBjb25zdCB7
IHJldHVybiBtX2lzU2tpcFdhaXRpbmdGbGFnU2V0OyB9CkBAIC0xNDQsNyArMTQ1LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNDbGllbnRBY3RpdmVTZXJ2aWNlV29ya2Vy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBTV1NlcnZlcldvcmtlcihTV1NlcnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3Qg
VVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeSYsIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOworICAgIFNXU2VydmVyV29ya2VyKFNXU2VydmVyJiwgU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBTY3JpcHRCdWZmZXImLCBjb25z
dCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiwgU3RyaW5nJiYgcmVmZXJy
ZXJQb2xpY3ksIFdvcmtlclR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0
ZWRTY3JpcHQ+JiYpOwogCiAgICAgdm9pZCBjYWxsV2hlbkFjdGl2YXRlZEhhbmRsZXIoYm9vbCBz
dWNjZXNzKTsKIApAQCAtMTY5LDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgUmVnaXN0cmFibGVE
b21haW4gbV9yZWdpc3RyYWJsZURvbWFpbjsKICAgICBib29sIG1faXNTa2lwV2FpdGluZ0ZsYWdT
ZXQgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPj4g
bV93aGVuQWN0aXZhdGVkSGFuZGxlcnM7Ci0gICAgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IG1fc2NyaXB0UmVzb3VyY2VNYXA7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6
OkltcG9ydGVkU2NyaXB0PiBtX3NjcmlwdFJlc291cmNlTWFwOwogICAgIGJvb2wgbV9zaG91bGRT
a2lwSGFuZGxlRmV0Y2ggeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNUaW1lZE91dEFueUZldGNo
VGFza3MgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBt
X3Rlcm1pbmF0aW9uQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCAwMDM4NTRiNjEwZjMzMWQ3ZTg0NDk5YmU5YjFj
ZDY2NjM2ZTFmZDM1Li5mODY4MDk5YjU4Nzk0NmFjNGNkM2E1ZmE5YmFlZWQzNjMwY2I3NTZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Ojp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VyCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlRlcm1pbmF0ZVdvcmtlcihz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25z
dCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKQordm9pZCBXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFNhdmVTY3JpcHRzVG9EaXNrKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTY3JpcHRCdWZm
ZXImIHNjcmlwdCwgY29uc3QgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3Jp
cHRCdWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMpCiB7CiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNP
VVJDRSkgJiYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gU2VuZCBmaWxlLW1hcHBlZCBTY3JpcHRC
dWZmZXJzIG92ZXIgdG8gdGhlIFNlcnZpY2VXb3JrZXIgcHJvY2VzcyBzbyB0aGF0IGl0IGNhbiBy
ZXBsYWNlIGl0cyBoZWFwLWFsbG9jYXRlZCBjb3BpZXMgYW5kIHNhdmUgb24gZGlydHkgbWVtb3J5
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmlu
ZGV4IDRlZDA2ZTI4NjkyYjQyYzhhNGM4YjZmYjEwYTA3YzRkMjNkNWM5YjguLjYyYTJkOTZjZTRh
NzIyYTFjOWZhZTE4Y2I5NDY0YTJhNDQ5N2U3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIpIGZpbmFsOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIGRpZFNhdmVTY3JpcHRz
VG9EaXNrKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
Y3JpcHRCdWZmZXImLCBjb25zdCBIYXNoTWFwPFVSTCwgV2ViQ29yZTo6U2NyaXB0QnVmZmVyPiYg
aW1wb3J0ZWRTY3JpcHRzKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTY3JpcHRCdWZm
ZXImLCBjb25zdCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFdlYkNvcmU6OlNj
cmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbENv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFsOwogICAgIHZvaWQgZmlyZVB1c2hFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7
CiAgICAgdm9pZCBmaXJlTm90aWZpY2F0aW9uRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25FdmVudFR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAppbmRleCBmZDVhYjgxYTNjYjhhZjE1NzU1NzI0NTNlMmNmYzUzYWY0YzBiMmNmLi45Yzcy
ZDVjM2ExMmVjMTQ3NzllZGVhNzRkMGZlMTkwZmNkM2Q5M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTA2LDcgKzUw
Niw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgcGFyYW1ldGVycy5sb2Fkc1N1YnJlc291cmNlcyA9ICpsb2Fkc1N1YnJlc291cmNl
czsKIAotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxIYXNoU2V0PFN0cmluZz4+PiBh
bGxvd2VkTmV0d29ya0hvc3RzOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxNZW1v
cnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4+IGFsbG93ZWROZXR3
b3JrSG9zdHM7CiAgICAgZGVjb2RlciA+PiBhbGxvd2VkTmV0d29ya0hvc3RzOwogICAgIGlmICgh
YWxsb3dlZE5ldHdvcmtIb3N0cykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA4
NGZjNDZjNmY5YTY0Y2Q3ZmEzYmM4NTkwMWFmMGJiYjBhNjg1NWQ5Li5jMTg5NjllYzYwODdjYzli
NmM3NThlOGFhMzI5MjhkMDI3NzJkMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC01MCw3ICs1MCw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9TaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVmlld3BvcnRBcmd1bWVudHMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCkBAIC0yMjQsNyArMjI0LDcg
QEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZlY3RvcjxTdHJpbmc+
IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBib29sIHVzZXJTY3JpcHRzU2hvdWxkV2FpdFVu
dGlsTm90aWZpY2F0aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0
cnVlIH07Ci0gICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWROZXR3b3Jr
SG9zdHM7CisgICAgc3RkOjpvcHRpb25hbDxNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9v
ZEhhc2hTZXQ8U3RyaW5nPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKIAogICAgIGJvb2wgY3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkIHsgdHJ1ZSB9OwogICAgIFN0cmluZyBwcm9j
ZXNzRGlzcGxheU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
YWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGI1YjVlMjViNGQ2NGU4YmJlNmZlYWQzYWUyYWZhNWQw
YjY5MWM0ODcuLjU0YThiZWUzNjVjYjg4MzBjMWRiYTdmMzk4NmZkNTNhMTAyMmZlMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
CkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTU3LDgg
KzE1Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGxvYWRzU3VicmVzb3VyY2VzKCkgY29uc3QgeyBy
ZXR1cm4gbV9sb2Fkc1N1YnJlc291cmNlczsgfQogICAgIHZvaWQgc2V0TG9hZHNTdWJyZXNvdXJj
ZXMoYm9vbCBsb2FkcykgeyBtX2xvYWRzU3VicmVzb3VyY2VzID0gbG9hZHM7IH0KIAotICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxXVEY6OlN0cmluZz4+JiBhbGxvd2VkTmV0d29ya0hv
c3RzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkTmV0d29ya0hvc3RzOyB9Ci0gICAgdm9pZCBz
ZXRBbGxvd2VkTmV0d29ya0hvc3RzKHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxXVEY6OlN0cmluZz4+
JiYgaG9zdHMpIHsgbV9hbGxvd2VkTmV0d29ya0hvc3RzID0gV1RGTW92ZShob3N0cyk7IH0KKyAg
ICBjb25zdCBzdGQ6Om9wdGlvbmFsPE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aFNldDxXVEY6OlN0cmluZz4+JiBhbGxvd2VkTmV0d29ya0hvc3RzKCkgY29uc3QgeyByZXR1cm4g
bV9hbGxvd2VkTmV0d29ya0hvc3RzOyB9CisgICAgdm9pZCBzZXRBbGxvd2VkTmV0d29ya0hvc3Rz
KHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFdU
Rjo6U3RyaW5nPj4mJiBob3N0cykgeyBtX2FsbG93ZWROZXR3b3JrSG9zdHMgPSBXVEZNb3ZlKGhv
c3RzKTsgfQogCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAgIGJvb2wgaWdub3Jl
c0FwcEJvdW5kRG9tYWlucygpIGNvbnN0IHsgcmV0dXJuIG1faWdub3Jlc0FwcEJvdW5kRG9tYWlu
czsgfQpAQCAtMjM1LDcgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCB7IHRydWUgfTsKICAgICBXVEY6OlN0cmluZyBtX3By
b2Nlc3NEaXNwbGF5TmFtZTsKICAgICBib29sIG1fbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07
Ci0gICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFdURjo6U3RyaW5nPj4gbV9hbGxvd2VkTmV0d29y
a0hvc3RzOworICAgIHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhv
b2RIYXNoU2V0PFdURjo6U3RyaW5nPj4gbV9hbGxvd2VkTmV0d29ya0hvc3RzOwogICAgIAogI2lm
IEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBib29sIG1faWdub3Jlc0FwcEJvdW5kRG9t
YWlucyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDEyYjljNTA3MmVkNzMy
OGQ0MGM0ZjNlY2M3YWE2MjQ5ZmNhNmRmODguLmU4Nzg5YTkxZTljYzc2ZGVlNDZkYTQ3MThkYmUy
M2YzZmMxZjBiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC00Niw2ICs0Niw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3Rm
L1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9VUkxQYXJzZXIuaD4KICNpbXBvcnQg
PHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0NvY29hLmg+CkBAIC05ODIsNyArOTgzLDcgQEAgLSAodm9pZClfc2V0Q09SU0Rpc2Fi
bGluZ1BhdHRlcm5zOihOU0FycmF5PE5TU3RyaW5nICo+ICopcGF0dGVybnMKIAogLSAodm9pZClf
c2V0TG9hZHNGcm9tTmV0d29yazooQk9PTClsb2FkcwogewotICAgIF9wYWdlQ29uZmlndXJhdGlv
bi0+c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhsb2FkcyA/IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6b3B0
aW9uYWw8SGFzaFNldDxTdHJpbmc+PiB7IEhhc2hTZXQ8U3RyaW5nPiB7IH0gfSk7CisgICAgX3Bh
Z2VDb25maWd1cmF0aW9uLT5zZXRBbGxvd2VkTmV0d29ya0hvc3RzKGxvYWRzID8gc3RkOjpudWxs
b3B0IDogc3RkOjpvcHRpb25hbCB7IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aFNldDxTdHJpbmc+IHsgfSB9KTsKIH0KIAogLSAoQk9PTClfbG9hZHNGcm9tTmV0d29yawpAQCAt
OTk0LDcgKzk5NSw3IEBAIC0gKHZvaWQpX3NldEFsbG93ZWROZXR3b3JrSG9zdHM6KE5TU2V0PE5T
U3RyaW5nICo+ICopaG9zdHMKIHsKICAgICBpZiAoIWhvc3RzKQogICAgICAgICByZXR1cm4gX3Bh
Z2VDb25maWd1cmF0aW9uLT5zZXRBbGxvd2VkTmV0d29ya0hvc3RzKHN0ZDo6bnVsbG9wdCk7Ci0g
ICAgSGFzaFNldDxTdHJpbmc+IHNldDsKKyAgICBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmlu
SG9vZEhhc2hTZXQ8U3RyaW5nPiBzZXQ7CiAgICAgZm9yIChOU1N0cmluZyAqaG9zdCBpbiBob3N0
cykKICAgICAgICAgc2V0LmFkZChob3N0KTsKICAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFs
bG93ZWROZXR3b3JrSG9zdHMoV1RGTW92ZShzZXQpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458081</attachid>
            <date>2022-04-21 12:21:06 -0700</date>
            <delta_ts>2022-04-21 16:28:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239576-20220421122105.patch</filename>
            <type>text/plain</type>
            <size>110471</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE2NGY4MzU4ZmEwZTU1NTNjYzc2ZWU5
YzlmZDkzNDdhZjIwOGJhY2MuLjZjZDY0YWJmODIwNzY1MTI2YmFhMmM0OGZlYTFhNzljNTc0M2E2
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29k
SGFzaFNldCBtb3JlIGJyb2FkbHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdXNpbmcgUm9iaW5Ib29kSGFzaE1hcCAvIFJv
YmluSG9vZEhhc2hTZXQgd2l0aCBVUkwga2V5cyBzaW5jZSBhIFVSTCB3cmFwcyBhIFN0cmluZwor
ICAgICAgICBhbmQgdXNlcyBpdHMgaW50ZXJuYWwgU3RyaW5nJ3MgY2FjaGVkIGhhc2ggYXMgaGFz
aC4KKworICAgICAgICAqIHd0Zi9VUkxIYXNoLmg6CisKIDIwMjItMDQtMjAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHRydWUgLyBmYWxzZSBBdG9tU3Ry
aW5ncyB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5kIHJldXNlIHRoZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmY3NGRmMDFjOTA5YzJjODE3NTQyN2JkNWZkNWRiZGNiNjI2ZjY1Li5iY2JlZTRiOWEyMTk1YWQ3
YzkxNTNkMjgwMjMzM2M2NDI5NDY0N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI0IEBACisy
MDIyLTA0LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgbW9yZSBicm9hZGx5IGluIFdl
YkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
b3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUgYnJvYWRseSBpbiBX
ZWJDb3JlIHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5IGluIGhhc2ggdGFibGVzLgorICAgICAgICBS
b2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBoYXZlIG1vcmUgcmVzdHJpY3Rpb25z
IG9uIHdoYXQga2V5IHR5cGVzIHRoZXkgd29yayB3aXRoIGFuZCBtYXkgcmVzdWx0CisgICAgICAg
IGluIHNsaWdodGx5IGxvd2VyIHBlcmZvcm1hbmNlIGJ1dCB0aGV5IGhhdmUgYSBtdWNoIGhpZ2hl
ciBsb2FkIGZhY3RvciB0aGF0IHRoZSByZWd1bGFyIEhhc2hNYXAgLyBIYXNoU2V0LAorICAgICAg
ICB0aHVzIHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4gVGhpcyBwYXRjaCBhZG9wdHMgUm9iaW5Ib29k
SGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgb24gbm9uIHBlcmZvcm1hbmNlCisgICAgICAgIHNl
bnNpdGl2ZSBtYXBzIC8gc2V0cyBpbiBXZWJDb3JlIHRoYXQgaGF2ZSBjb21wYXRpYmxlIGtleXMg
KFN0cmluZyAvIEF0b21TdHJpbmcgLyBVUkwgYmVjYXVzZSB0aGV5IGNhY2hlCisgICAgICAgIHRo
ZWlyIGhhc2gpLgorCisgICAgICAgIFRoaXMgaXMgcGVyZi1uZXV0cmFsIG9uIGFsbCBvdXIgYmVu
Y2htYXJrcyBhY2NvcmRpbmcgdG8gQS9CIHRlc3RpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0RnJvemVuS2V5VmFsdWVP
YmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29weURhdGFGcm9tUGFyYW1ldGVyTWFwVG9KU09i
amVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNB
cmd1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6cGFyYW1ldGVyRGVzY3JpcHRvck1hcCBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXVEZfUkVRVUlSRVNfTE9DSyk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFj
a2VyOjpyZWNvcmREZWxldGluZ0RhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oOgorICAgICAgICAqIGRvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6cHJvbWlzZU1hcCk6CisgICAgICAgICogZG9t
L0V4dGVuc2lvblN0eWxlU2hlZXRzLmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAg
ICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OjpyZXNldE9ic2VydmF0aW9uKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbi5oOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAg
ICAgICAgKiBkb20vV2luZG93RXZlbnRMb29wLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrUmVzb3VyY2VzRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQu
aDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OnNldEFjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvblBhdHRlcm5z
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmg6CisgICAgICAgICogcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldURl9SRVFVSVJF
U19MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnVwZGF0ZVRyYWNrc09mS2luZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvVVRJUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFz
ZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyaWNGYW1pbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tOgorICAgICAgICAoV2ViQ29y
ZVJlcG9ydFRocmVhZFZpb2xhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVn
aXN0cnlJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlZmVyZW5jZWRTVkdSZXNvdXJjZXMuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3RyaXBTY3JpcHRTb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlU2NyaXB0
U291cmNlc0Zyb21EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNl
Ojpkb1B1c2hDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNl
OjppbXBvcnRSZWNvcmRzKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lz
dHJhdGlvblN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvblN0b3JlOjpk
aWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmRpZFNhdmVXb3Jr
ZXJTY3JpcHRzVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1cGRhdGVXb3Jr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YSk6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6U1dTZXJ2ZXJXb3JrZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1dTZXJ2ZXJXb3JrZXI6OmRpZFNhdmVTY3JpcHRzVG9EaXNrKToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisKIDIwMjItMDQtMjAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZvbGxv
dy11cCB0byByMjkzMTIzIHRvIGFkZHJlc3MgcmV2aWV3IGZlZWRiYWNrIGZyb20gU2FtICYgRGFy
aW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNWEzZjBjNmM4ZDBlMGVlNTg1ZDNhZjRmYTAyNzU4OTM2YzYyN2Q0Zi4u
MDVkYWU4MWJmNTM1OTNmOGI2ODQ1NWM0OGFjZTYyMTc1NmU3MTA3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMi0wNC0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkb3B0IFJvYmluSG9vZEhhc2hNYXAgLyBSb2Jpbkhvb2RIYXNoU2V0IG1vcmUg
YnJvYWRseSBpbiBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzk1NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZG9wdCBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBtb3Jl
IGJyb2FkbHkgaW4gV2ViS2l0IHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5IGluIGhhc2ggdGFibGVz
LgorICAgICAgICBSb2Jpbkhvb2RIYXNoTWFwIC8gUm9iaW5Ib29kSGFzaFNldCBoYXZlIG1vcmUg
cmVzdHJpY3Rpb25zIG9uIHdoYXQga2V5IHR5cGVzIHRoZXkgd29yayB3aXRoIGFuZCBtYXkgcmVz
dWx0CisgICAgICAgIGluIHNsaWdodGx5IGxvd2VyIHBlcmZvcm1hbmNlIGJ1dCB0aGV5IGhhdmUg
YSBtdWNoIGhpZ2hlciBsb2FkIGZhY3RvciB0aGF0IHRoZSByZWd1bGFyIEhhc2hNYXAgLyBIYXNo
U2V0LAorICAgICAgICB0aHVzIHJlZHVjaW5nIG1lbW9yeSB1c2FnZS4gVGhpcyBwYXRjaCBhZG9w
dHMgUm9iaW5Ib29kSGFzaE1hcCAvIFJvYmluSG9vZEhhc2hTZXQgb24gbm9uIHBlcmZvcm1hbmNl
CisgICAgICAgIHNlbnNpdGl2ZSBtYXBzIC8gc2V0cyBpbiBXZWJDb3JlIHRoYXQgaGF2ZSBjb21w
YXRpYmxlIGtleXMgKFN0cmluZyAvIEF0b21TdHJpbmcgLyBVUkwgYmVjYXVzZSB0aGV5IGNhY2hl
CisgICAgICAgIHRoZWlyIGhhc2gpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFNhdmVTY3JpcHRzVG9EaXNr
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFsbG93ZWROZXR3b3JrSG9zdHMgY29uc3QpOgorICAg
ICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRMb2Fkc0Zyb21OZXR3b3JrOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRBbGxvd2VkTmV0d29ya0hv
c3RzOl0pOgorCiAyMDIyLTA0LTIwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgaU9TIDE1LjQgYnVpbGQgYWZ0ZXIg
cjI5MzExNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMSGFzaC5oIGIvU291cmNlL1dU
Ri93dGYvVVJMSGFzaC5oCmluZGV4IDI2OWUyYjU5ODRjMDU5YmFmYmY0MjkzZDBkZjQxMzgxOTcx
NWFjYjkuLjk3YTNlZTU1ZWVmYmU3NGRlZTZlYzBjZDBjMWZkMmZjYjBmOGZlMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1VSTEhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxIYXNo
LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IFVSTEhhc2ggewogICAgIH0KIAogICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNIYXNoSW5WYWx1ZSA9IHRydWU7CiB9OwogCiAv
LyBVUkxIYXNoIGlzIHRoZSBkZWZhdWx0IGhhc2ggZm9yIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaApp
bmRleCA3N2Q2MDRiMDhiYjdmN2UzOGJjY2IzNTQ1YjM0YzhiMTM0MzU1ZWYyLi43NzY3NjI2NDc4
OWIyNjVlMTEzNDk4OWEyYTA5MWI3MmEyYmQ1ODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaApAQCAtMjgs
OSArMjgsOSBAQAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAKICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CkBAIC02OSw3ICs2
OSw3IEBAIHByaXZhdGU6CiAgICAgSW5pdERhdGFSZWdpc3RyeSgpOwogICAgIH5Jbml0RGF0YVJl
Z2lzdHJ5KCk7CiAKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIEluaXREYXRhVHlwZUNhbGxiYWNr
cz4gbV90eXBlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5n
LCBJbml0RGF0YVR5cGVDYWxsYmFja3M+IG1fdHlwZXM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1TZXNz
aW9uQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVn
YWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oCmluZGV4IGE5YjRkMGEzNjNlZDU4YjRjMGQ0
MmE0MzJjZTk3ODRlNzFhNzFhMjAuLmQ1MjIzZTY1MzIyYTA1NTQzYmYwZTljYjY5MWM1MmRiZWFm
OWNlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
bGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oCkBA
IC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Np
b24uaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUo
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBXZWFrUHRyPExlZ2FjeUNETVNlc3Npb25DbGllbnQ+IG1fY2xpZW50OwogICAgIFJl
ZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8
dWludDhfdD4+IG1fY2FjaGVkS2V5czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj4gbV9jYWNoZWRLZXlzOwogICAgIFN0cmluZyBtX3Nl
c3Npb25JZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKaW5kZXggYmQwZmNhOGY5
NzEwZDNmNzdjNTI3NjIxMTM4MjBjZGQ0MmZiMDhmZi4uZjJlZjQ4MTA0MWU0MDM0YTMwZWIzMWYz
YzBhMjM0MWI3YzgzZTcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKQEAgLTMwLDgg
KzMwLDggQEAKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKICNpbmNsdWRlICJJbmRl
eGVkREIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9v
ZEhhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04OCw3ICs4OCw3IEBAIHBy
aXZhdGU6CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxTUUxpdGVJREJDdXJzb3I+PiBtX2N1cnNvcnM7CiAgICAgSGFzaFNldDxTUUxpdGVJREJDdXJz
b3IqPiBtX2JhY2tpbmdTdG9yZUN1cnNvcnM7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IG1fYmxvYlRlbXBvcmFyeUFuZFN0b3JlZEZpbGVuYW1lczsKLSAgICBIYXNoU2V0
PFN0cmluZz4gbV9ibG9iUmVtb3ZlZEZpbGVuYW1lczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaFNldDxTdHJpbmc+IG1fYmxvYlJlbW92ZWRGaWxlbmFtZXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJREJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKaW5kZXggYjdkZmU0NGIyNWZjNDc3MjE3
NGFhNjQ2ZTRiNThjMGEzMmVlMjI5ZC4uYTc1ZTQ5M2QzNTM3NTQ2NDExMjBkYjVhZjAzM2Q1NTc4
Njg0YTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Myw3ICs1
Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZVJlZ2lzdHJ5KCk7Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4+IG1fbWVkaWFTb3VyY2VzOwor
ICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU291
cmNlPj4gbV9tZWRpYVNvdXJjZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRl
eCBlMThkNTRkNDA2YzM1NzM1YzY0OWJiN2E5N2U4ZWNiYzczNDY3NjY3Li5hNDk0MWIyOTNmMjY0
NzE3MGJjNGM5YWVhMTZlM2U5MmNiOThmMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEzMyw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJl
cXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVudEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2Vy
R2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJlVG9rZW47CiAKLSAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZDsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERl
dmljZUlkVG9QZXJzaXN0ZW50SWQ7CiAgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAppbmRleCA3NDMxODBkMjliZWM1MzU3ZGYwYzFlNDgyZmU4YTI1NjRkYmU5MDdlLi4yNGJm
NTFmODMxMzFhMmQ5OTIxZmEzMjkyNGIyOWU3YWViZGI5OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0zOCw5ICszOCw5IEBA
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlICJVUkxSZWdpc3RyeS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0MSw3
ICsxNDEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV9wcml2
YXRlOwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4gbV90
cmFja1NldDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPj4gbV90cmFja1NldDsKIAogICAgIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbV9zdGF0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5oCmluZGV4IGNmY2E2ZWRmMjJkYTcyNzUyNjYwZDIyNzYwODJkOTAxZjgzNTZkN2UuLjE5
ZDE4ZDEzNjc2ZGQ4MjNkNWRkM2E2YmQzNzFlYTJjYjA2OTYxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
d2VicnRjIHsKQEAgLTE5MCwxMyArMTkxLDEzIEBAIHByaXZhdGU6CiAgICAgU2V0TG9jYWxTZXNz
aW9uRGVzY3JpcHRpb25PYnNlcnZlcjxMaWJXZWJSVENNZWRpYUVuZHBvaW50PiBtX3NldExvY2Fs
U2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXI7CiAgICAgU2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0
aW9uT2JzZXJ2ZXI8TGliV2ViUlRDTWVkaWFFbmRwb2ludD4gbV9zZXRSZW1vdGVTZXNzaW9uRGVz
Y3JpcHRpb25PYnNlcnZlcjsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJl
YW0+PiBtX3JlbW90ZVN0cmVhbXNCeUlkOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtPj4gbV9yZW1vdGVTdHJlYW1zQnlJZDsKICAg
ICBIYXNoTWFwPE1lZGlhU3RyZWFtVHJhY2sqLCBWZWN0b3I8U3RyaW5nPj4gbV9yZW1vdGVTdHJl
YW1zRnJvbVJlbW90ZVRyYWNrOwogCiAgICAgYm9vbCBtX2lzSW5pdGlhdG9yIHsgZmFsc2UgfTsK
ICAgICBUaW1lciBtX3N0YXRzTG9nVGltZXI7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFt
czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlPj4gbV9sb2NhbFN0cmVhbXM7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3BlbmRhYmxlU29ja2V0
RmFjdG9yeT4gbV9ydGNTb2NrZXRGYWN0b3J5OwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lz
dHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3Ry
eS5jcHAKaW5kZXggZjU1MDc4MGE4MWQ2MjRmMzFkMGUxODMzOTNlNTUxNDM1MzQwYTFjMi4uNzhl
M2JjOTRiOWFkMDgxMGNjZjcwMmI5ZWExNWQ2MmYyZTAxNjNjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2
LDggKzY3LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8TG9jYWxXZWJMb2NrUmVnaXN0cnk+
IG1fZ2xvYmFsUmVnaXN0cnk7CiAgICAgQ2xpZW50T3JpZ2luIG1fY2xpZW50T3JpZ2luOwotICAg
IEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9ja1JlcXVlc3RRdWV1ZU1h
cDsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxkTG9ja3M7Cisg
ICAgRmFzdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9j
a1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBGYXN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZlY3Rv
cjxMb2NrSW5mbz4+IG1faGVsZExvY2tzOwogfTsKIAogTG9jYWxXZWJMb2NrUmVnaXN0cnk6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IGY4
MjJlMmI4MzExNGZiNDA3NDYwYjI0ODBjYmY0ZDY2NDJjNjAzZWEuLmM3N2RkNWVhYzcwMWUxYzNi
YjE5MzliYzkwOTVkYTk0NTJkMDA5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKICNpbmNsdWRlICJNZXNzYWdl
UG9ydC5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtODEsNyArODIsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1fY3Vy
cmVudEZyYW1lIHsgMCB9OwogICAgIGNvbnN0IGZsb2F0IG1fc2FtcGxlUmF0ZTsKLSAgICBIYXNo
TWFwPFN0cmluZywgUmVmUHRyPEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0b3I+PiBt
X3Byb2Nlc3NvckNvbnN0cnVjdG9yTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFN0cmluZywgUmVmUHRyPEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0b3I+PiBt
X3Byb2Nlc3NvckNvbnN0cnVjdG9yTWFwOwogICAgIExvY2sgbV9wcm9jZXNzb3JzTG9jazsKICAg
ICBXZWFrSGFzaFNldDxBdWRpb1dvcmtsZXRQcm9jZXNzb3IsIFdURjo6RW1wdHlDb3VudGVyLCBF
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6Tm8+IG1fcHJvY2Vzc29ycyBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fcHJvY2Vzc29yc0xvY2spOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRp
b1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhPiBtX3BlbmRpbmdQcm9jZXNzb3JDb25z
dHJ1Y3Rpb25EYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaAppbmRleCBkNWI1YTYzMzFmZTFhMmI3ZjkzNmFjZjlmYmYwZDNlNWIy
NmJjMzczLi4zYmQyYjAzODlmMTZiMTg4MjlkNjNiNDY1ZGRlNTIwYzcxN2NjYjAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUg
IkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hNYXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsK
QEAgLTg2LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9ydDsK
ICAgICBMb2NrIG1fcHJvY2Vzc0xvY2s7CiAgICAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nv
cj4gbV9wcm9jZXNzb3I7IC8vIFNob3VsZCBvbmx5IGJlIHVzZWQgb24gdGhlIHJlbmRlcmluZyB0
aHJlYWQuCi0gICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJy
YXk+PiBtX3BhcmFtVmFsdWVzTWFwOworICAgIE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5I
b29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX3Bh
cmFtVmFsdWVzTWFwOwogICAgIFRocmVhZCogbV93b3JrbGV0VGhyZWFkIHsgbnVsbHB0ciB9Owog
CiAgICAgLy8gS2VlcHMgdGhlIHJlZmVyZW5jZSBvZiBBdWRpb0J1cyBvYmplY3RzIGZyb20gQXVk
aW9Ob2RlSW5wdXQgYW5kIEF1ZGlvTm9kZU91dHB1dCBpbiBvcmRlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3Bw
CmluZGV4IDI4MjQwODI1YjI4NGU3YjA4NjNkMjIwNjlmZDg4ZjRlZWY2NGU4ZTEuLmNiN2UyZTM5
OTliMGQyMTFjNjk3ZjM1N2ViOGU4Mjc5ZGIzNDgyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAg
LTc2LDcgKzc2LDcgQEAgc3RhdGljIEpTRmxvYXQzMkFycmF5KiBjb25zdHJ1Y3RKU0Zsb2F0MzJB
cnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCB1bnMKICAgICByZXR1cm4ganNBcnJh
eTsKIH0KIAotc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RGcm96ZW5LZXlWYWx1ZU9iamVjdChW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQorc3Rh
dGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RGcm96ZW5LZXlWYWx1ZU9iamVjdChWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9i
aW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYg
cGFyYW1WYWx1ZXNNYXApCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIGF1dG8qIHBsYWluT2JqZWN0U3RydWN0dXJlID0gSlNGaW5hbE9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCAmZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90
eXBlKCksIDApOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBib29sIGNvcHlEYXRhRnJvbUJ1
c2VzVG9KU0FycmF5KEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGNvcHlEYXRhRnJvbVBhcmFtZXRlck1h
cFRvSlNPYmplY3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBI
YXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZh
bHVlc01hcCwgSlNPYmplY3QqIGpzT2JqZWN0KQorc3RhdGljIGJvb2wgY29weURhdGFGcm9tUGFy
YW1ldGVyTWFwVG9KU09iamVjdChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIEpTT2JqZWN0
KiBqc09iamVjdCkKIHsKICAgICBpZiAoIWpzT2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0yMTgsNyArMjE4LDcgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IoQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUmIGdsb2JhbFNjb3AKICAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKIH0KIAotdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxk
SlNBcmd1bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRB
cmd1bWVudEJ1ZmZlckJhc2UmIGFyZ3MsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYg
aW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKQor
dm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1bWVudHMoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UmIGFyZ3Ms
IGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlv
QnVzPj4mIG91dHB1dHMsIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1
ZXNNYXApCiB7CiAgICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHdlIGNhY2hlIHRoZSBh
cnJheXMgcGFzc2VkIHRvIEpTIGFuZCByZWNvbnN0cnVjdCB0aGVtIG9ubHkgd2hlbiB0aGUgdG9w
b2xvZ3kgY2hhbmdlcy4KICAgICBpZiAoIWNvcHlEYXRhRnJvbUJ1c2VzVG9KU0FycmF5KGdsb2Jh
bE9iamVjdCwgaW5wdXRzLCB0b0pTQXJyYXkobV9qc0lucHV0cykpKQpAQCAtMjM0LDcgKzIzNCw3
IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAgICAgYXJncy5hcHBlbmQobV9qc1BhcmFtVmFs
dWVzLmdldFZhbHVlKCkpOwogfQogCi1ib29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vz
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRp
b0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiti
b29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1
ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2Vw
dGlvbikKIHsKICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1
ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8g
ZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3Iu
aAppbmRleCA3ZDI1NmVhNTU3YmI4NjZjMTUxYzczNDgzMDJjMmQxMTA5M2ZiMzk4Li4zY2Y5Y2Zm
MGE0MjMyM2FlYmQxMjYxZTViM2FiNGQzNjkyY2VmYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogICAgIGNvbnN0
IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIE1lc3NhZ2VQb3J0
JiBwb3J0KCkgeyByZXR1cm4gbV9wb3J0LmdldCgpOyB9CiAKLSAgICBib29sIHByb2Nlc3MoY29u
c3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+
PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zs
b2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKTsKKyAgICBi
b29sIHByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3Rv
cjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+
JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pOwogCiAgICAgSlNWYWx1ZUlu
V3JhcHBlZE9iamVjdCYganNJbnB1dHNXcmFwcGVyKCkgeyByZXR1cm4gbV9qc0lucHV0czsgfQog
ICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGpzT3V0cHV0c1dyYXBwZXIoKSB7IHJldHVybiBt
X2pzT3V0cHV0czsgfQpAQCAtNjksNyArNzAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlJiwg
Y29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YSYpOwotICAgIHZvaWQg
YnVpbGRKU0FyZ3VtZW50cyhKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXJCYXNlJiwgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBp
bnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApOwor
ICAgIHZvaWQgYnVpbGRKU0FyZ3VtZW50cyhKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiwgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRp
b0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgTWVt
b3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCk7CiAKICAgICBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZSYgbV9nbG9iYWxTY29wZTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRl
eCA0YWZmYWMzM2UzNDI0YzNmYWI1YWE1YjJiZWQwZDc0NDc2NzIyZmQ1Li42ZTNiODdmNGU4ZDFk
MDc2ZDk5NDYzYTlmN2Y3Y2YyODkwZTE4MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jp
bkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC0yMjMsNyArMjI0LDcgQEAgcHVibGljOgog
ICAgIFBlcmlvZGljV2F2ZSYgcGVyaW9kaWNXYXZlKE9zY2lsbGF0b3JUeXBlKTsKIAogICAgIHZv
aWQgYWRkQXVkaW9QYXJhbURlc2NyaXB0b3JzKGNvbnN0IFN0cmluZyYgcHJvY2Vzc29yTmFtZSwg
VmVjdG9yPEF1ZGlvUGFyYW1EZXNjcmlwdG9yPiYmKTsKLSAgICBjb25zdCBIYXNoTWFwPFN0cmlu
ZywgVmVjdG9yPEF1ZGlvUGFyYW1EZXNjcmlwdG9yPj4mIHBhcmFtZXRlckRlc2NyaXB0b3JNYXAo
KSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlckRlc2NyaXB0b3JNYXA7IH0KKyAgICBjb25zdCBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1BhcmFtRGVz
Y3JpcHRvcj4+JiBwYXJhbWV0ZXJEZXNjcmlwdG9yTWFwKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJEZXNjcmlwdG9yTWFwOyB9CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlQXVk
aW9Db250ZXh0KERvY3VtZW50Jik7CkBAIC0zNDUsNyArMzQ2LDcgQEAgcHJpdmF0ZToKIAogICAg
IEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFBvc2l0aW9uOwogCi0gICAgSGFzaE1hcDxTdHJpbmcs
IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4+IG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcDsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBdWRpb1Bh
cmFtRGVzY3JpcHRvcj4+IG1fcGFyYW1ldGVyRGVzY3JpcHRvck1hcDsKIAogICAgIC8vIFRoZXNl
IGFyZSBjYWNoZWQgcGVyIGF1ZGlvIGNvbnRleHQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRo
ZXkgY2Fubm90IGJlCiAgICAgLy8gc3RhdGljIGJlY2F1c2UgdGhleSByZWx5IG9uIHRoZSBzYW1w
bGUgcmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5jcHAKaW5kZXggMDE4ZGJiOTliMThmYjY3YjhiMGRjMDkzODgyNzgxN2FiZGIyYzYyNC4uNTNm
YmUzMjA1MjRlYTRhNGZkNGYxZDM5ZjJjZDI0OWQwNTY4NTcxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAK
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKQEAgLTE4MSw3ICsxODIsNyBAQCBzdGF0aWMgSGFzaE1hcDxEYXRhYmFzZUdVSUQs
IEhhc2hTZXQ8RGF0YWJhc2UqPj4mIGd1aWRUb0RhdGFiYXNlTWFwKCkgV1RGX1JFUVVJUgogCiBz
dGF0aWMgaW5saW5lIERhdGFiYXNlR1VJRCBndWlkRm9yT3JpZ2luQW5kTmFtZShjb25zdCBTdHJp
bmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKSBXVEZfUkVRVUlSRVNfTE9DSyhndWlkTG9j
aykKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIERhdGFiYXNl
R1VJRD4+IG1hcDsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgRGF0YWJhc2VHVUlEPj4gbWFwOwogICAgIHJl
dHVybiBtYXAuZ2V0KCkuZW5zdXJlKG1ha2VTdHJpbmcob3JpZ2luLCAnLycsIG5hbWUpLCBbXSB7
CiAgICAgICAgIHN0YXRpYyBEYXRhYmFzZUdVSUQgbGFzdFVzZWRHVUlEOwogICAgICAgICByZXR1
cm4gKytsYXN0VXNlZEdVSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggYTRmMGM3NDQ1MjM3MWE0ZGJkOGRm
MDg2MDY5ZWNkMTBhYmEzMjI5Zi4uYjlkM2MzOTI3YTc1MDBjMTk4ZmY3NWE4YjY2YTNjODE2MjA4
ZjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcApAQCAtOTg0LDcgKzk4NCw3IEBAIHZvaWQgRGF0YWJhc2VUcmFj
a2VyOjpyZWNvcmREZWxldGluZ0RhdGFiYXNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luLCBjCiAgICAgLy8gV2UgZG9uJ3QgdXNlIEhhc2hNYXA6OmVuc3VyZSBoZXJlIHRvIGF2b2lk
IG1ha2luZyBhbiBpc29sYXRlZCBjb3B5IG9mIHRoZSBvcmlnaW4gZXZlcnkgdGltZS4KICAgICBh
dXRvKiBuYW1lU2V0ID0gbV9iZWluZ0RlbGV0ZWQuZ2V0KG9yaWdpbik7CiAgICAgaWYgKCFuYW1l
U2V0KSB7Ci0gICAgICAgIGF1dG8gb3duZWRTZXQgPSBtYWtlVW5pcXVlPEhhc2hTZXQ8U3RyaW5n
Pj4oKTsKKyAgICAgICAgYXV0byBvd25lZFNldCA9IG1ha2VVbmlxdWU8TWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hTZXQ8U3RyaW5nPj4oKTsKICAgICAgICAgbmFtZVNldCA9IG93bmVkU2V0Lmdl
dCgpOwogICAgICAgICBtX2JlaW5nRGVsZXRlZC5hZGQob3JpZ2luLmlzb2xhdGVkQ29weSgpLCBX
VEZNb3ZlKG93bmVkU2V0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKaW5kZXggNTZkYzEzNWUyM2E3MDM2YmUz
ZjBkOGYyODRlYTFmYmJmMjVkMWIzMy4uZjQzOTU5ODJkOGRlMWEzNzg5OTNmY2Y3MDlkNTUyMDdj
ODNlMzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVHJhY2tlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW5IYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTE3Nyw3
ICsxNzcsNyBAQCBwcml2YXRlOgogICAgIERhdGFiYXNlTWFuYWdlckNsaWVudCogbV9jbGllbnQg
eyBudWxscHRyIH07CiAKICAgICBIYXNoTWFwPFNlY3VyaXR5T3JpZ2luRGF0YSwgc3RkOjp1bmlx
dWVfcHRyPEhhc2hDb3VudGVkU2V0PFN0cmluZz4+PiBtX2JlaW5nQ3JlYXRlZCBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fZGF0YWJhc2VHdWFyZCk7Ci0gICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRh
dGEsIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PFN0cmluZz4+PiBtX2JlaW5nRGVsZXRlZCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgSGFzaE1hcDxTZWN1cml0eU9y
aWdpbkRhdGEsIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxT
dHJpbmc+Pj4gbV9iZWluZ0RlbGV0ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3Vh
cmQpOwogICAgIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBtX29yaWdpbnNCZWluZ0RlbGV0
ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwogICAgIGJvb2wgaXNEZWxl
dGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3IoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3Qg
U3RyaW5nJiBuYW1lKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2RhdGFiYXNlR3VhcmQpOwogICAgIHZv
aWQgcmVjb3JkQ3JlYXRpbmdEYXRhYmFzZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmIG5hbWUpIFdURl9SRVFVSVJFU19MT0NLKG1fZGF0YWJhc2VHdWFyZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZS5oCmluZGV4IGE0ZTY5YjUxYzg0NzBmNDg4YjE2MmNlNmFiMDg2MTRhY2ZhY2QyMDAuLmMyMTRk
Y2QyN2UwOTExODA4ZTllMTQyYjgxNzhkZDdjMzYwMjU5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhv
b2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC0xMDcsNyArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBKU0M6OldlYWs8
SlNDOjpKU09iamVjdD4gbV9hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s7CiAgICAgUmVmPERPTVdy
YXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOwogICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4s
IDE+IG1fY29uc3RydWN0aW9uU3RhY2s7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBtX29ic2Vy
dmVkQXR0cmlidXRlczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxBdG9tU3Ry
aW5nPiBtX29ic2VydmVkQXR0cmlidXRlczsKICAgICBib29sIG1faXNTaGFkb3dEaXNhYmxlZCA6
IDE7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5oCmluZGV4IGI4Nzg0ZWExNzRmZjcxZmI1M2I4MWMxMTg0NjA0YTNhMmU5Mjg3OGQuLmU5
MmY0NWQ5YzVlOGE0YTdhZTUzOWI3ZDIzMDgxNGFhOThkNDJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Jv
YmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVJMSGFzaC5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKQEAgLTczLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBVUkwgcmVzcG9uc2VVUkxGcm9t
UmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fY29udGV4dDsKLSAgICBIYXNoTWFwPFN0cmluZywgVVJM
PiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhv
b2RIYXNoTWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAg
IEhhc2hTZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKICAgICBPd25lclR5
cGUgbV9vd25lclR5cGU7CiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbV9zaGFkb3dSZWFsbUds
b2JhbCB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21F
bGVtZW50UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0
cnkuaAppbmRleCAwMWVjNjQ0ODNlYWE0ZDkyN2VkYTY3Yjc3MDM5YmNjZjdlOTMyMDE4Li45NGZj
NmVhZjYxMDdiMmQwMWVhYjMwMjAyYjg3YjUzYzUyNTZhNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpbmNsdWRl
ICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUu
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29k
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAg
ICBKU0M6OkpTVmFsdWUgZ2V0KGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICB2b2lkIHVwZ3JhZGUo
Tm9kZSYgcm9vdCk7CiAKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxEZWZlcnJlZFByb21p
c2U+PiYgcHJvbWlzZU1hcCgpIHsgcmV0dXJuIG1fcHJvbWlzZU1hcDsgfQorICAgIE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxEZWZlcnJlZFByb21pc2U+PiYg
cHJvbWlzZU1hcCgpIHsgcmV0dXJuIG1fcHJvbWlzZU1hcDsgfQogICAgIGJvb2wgaXNTaGFkb3dE
aXNhYmxlZChjb25zdCBBdG9tU3RyaW5nJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVk
U2hhZG93U2V0LmNvbnRhaW5zKG5hbWUpOyB9CiAKIHByaXZhdGU6CkBAIC03Niw4ICs3Niw4IEBA
IHByaXZhdGU6CiAgICAgRE9NV2luZG93JiBtX3dpbmRvdzsKICAgICBIYXNoTWFwPEF0b21TdHJp
bmcsIFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+PiBtX25hbWVNYXA7CiAgICAgSGFzaE1h
cDxjb25zdCBKU0M6OkpTT2JqZWN0KiwgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKj4gbV9jb25z
dHJ1Y3Rvck1hcDsKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxEZWZlcnJlZFByb21pc2U+
PiBtX3Byb21pc2VNYXA7Ci0gICAgSGFzaFNldDxBdG9tU3RyaW5nPiBtX2Rpc2FibGVkU2hhZG93
U2V0OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIFJlZjxE
ZWZlcnJlZFByb21pc2U+PiBtX3Byb21pc2VNYXA7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hTZXQ8QXRvbVN0cmluZz4gbV9kaXNhYmxlZFNoYWRvd1NldDsKIAogICAgIGJvb2wgbV9l
bGVtZW50RGVmaW5pdGlvbklzUnVubmluZyB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V4dGVuc2lvblN0eWxlU2hlZXRzLmgKaW5kZXggZGE4YjBhOTY4Y2Q4YWIxZDU3MzQ2ZDlkYjg2
Yzk5MDc5YzQ0MzdmNC4uY2QyNDg1ODk1N2VlZTcyM2UxZmY4OTIzMzQ5ZmFhMGZmNGQ1YjMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmgKQEAgLTMwLDggKzMw
LDggQEAKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC05NSw4ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFVzZXJTdHlsZVNoZWV0PiBt
X3BhZ2VTcGVjaWZpY1N0eWxlU2hlZXRzOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPENTU1N0eWxlU2hlZXQ+PiBtX2NvbnRlbnRF
eHRlbnNpb25TaGVldHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ+PiBtX2NvbnRlbnRFeHRlbnNpb25TZWxl
Y3RvclNoZWV0czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxDU1NTdHlsZVNoZWV0Pj4gbV9jb250ZW50RXh0ZW5zaW9uU2hlZXRzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPENvbnRlbnRFeHRlbnNpb25z
OjpDb250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldD4+IG1fY29udGVudEV4dGVuc2lvblNlbGVjdG9y
U2hlZXRzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKaW5kZXggZDk4MDJmZTJiY2FjZTFiMDhmNTdjMzc2N2QwNWRkMzRhODM5MDYzMy4uZGQ2ZTRl
ZjZmODExNzZkNjExZWU0ZGQ0OWI0NWE3N2ZhYzRjZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkwLDcgKzkxLDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0
KQogICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGFPbGRWYWx1ZS52YWx1ZV9vcihmYWxzZSkpCiAg
ICAgICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAK
LSAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKKyAgICBNZW1vcnlDb21w
YWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlRmlsdGVy
OwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkKICAgICAgICAgICAgIGF0dHJpYnV0
ZUZpbHRlci5hZGQodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGQzYzFmYTY2ZWQyZjU1NDdmMGI4MDljNjkw
N2JiNDVjNGY5ZjU0YTMuLmM4YWYyZTgxOTJlZWEyMzY5OTIzODYwYzMzNTQ3ZTk0YjkxY2I4Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKE11
dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIp
CitNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKE11dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9v
ZEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcikKICAgICA6IG1fb2JzZXJ2ZXIo
b2JzZXJ2ZXIpCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQpA
QCAtNTMsNyArNTMsNyBAQCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp+TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbigpCiAgICAgbV9vYnNlcnZlci0+b2JzZXJ2YXRpb25FbmRlZCgq
dGhpcyk7CiB9CiAKLXZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6cmVzZXRPYnNl
cnZhdGlvbihNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0
b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OnJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywg
Y29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+
JiBhdHRyaWJ1dGVGaWx0ZXIpCiB7CiAgICAgdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsK
ICAgICBtX29wdGlvbnMgPSBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggNzViYjI3YzM1MTQwMmY1OGY0ZTc4NDk2
NTYzMGFiYjhlMjliNTFiNS4uMTI2N2YwMTJlNjQ3ZjZmOGRlOWFkYWJhMzVhODUxMDhmOWE3N2Jj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJHQ1JlYWNoYWJsZVJlZi5oIgog
I2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbVN0cmluZ0hhc2guaD4KQEAgLTQ4LDEwICs0OCwxMCBAQCBjbGFzcyBRdWFsaWZpZWROYW1l
OwogY2xhc3MgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihNdXRh
dGlvbk9ic2VydmVyJiwgTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNo
U2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOworICAgIE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24oTXV0YXRpb25PYnNlcnZlciYsIE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIH5NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKCk7CiAKLSAgICB2b2lkIHJlc2V0T2JzZXJ2YXRpb24oTXV0YXRpb25PYnNlcnZlck9wdGlv
bnMsIGNvbnN0IEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CisgICAgdm9p
ZCByZXNldE9ic2VydmF0aW9uKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBNZW1vcnlD
b21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZp
bHRlcik7CiAgICAgdm9pZCBvYnNlcnZlZFN1YnRyZWVOb2RlV2lsbERldGFjaChOb2RlJik7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiB0YWtlVHJh
bnNpZW50UmVnaXN0cmF0aW9ucygpOwogICAgIGJvb2wgaGFzVHJhbnNpZW50UmVnaXN0cmF0aW9u
cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgJiYgIW1fdHJh
bnNpZW50UmVnaXN0cmF0aW9uTm9kZXMtPmlzRW1wdHkoKTsgfQpAQCAtNzIsNyArNzIsNyBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX25vZGVLZXB0QWxpdmU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiBtX3RyYW5zaWVudFJlZ2lzdHJh
dGlvbk5vZGVzOwogICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG1fb3B0aW9uczsKLSAgICBI
YXNoU2V0PEF0b21TdHJpbmc+IG1fYXR0cmlidXRlRmlsdGVyOworICAgIE1lbW9yeUNvbXBhY3RM
b29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiBtX2F0dHJpYnV0ZUZpbHRlcjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxOGZhOTAw
NjE0ZWE0NmRkNDA3YjgxMTU0ZDc5MDJkMTYwNTBmYzQyLi5jMmE1YmRhODE2MmVmYzBiYWIxYTcy
YjEwYTg2OGQwNzdmOTk5YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMzE5LDcgKzIzMTksNyBA
QCBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQg
Tm9kZTo6cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVy
LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJp
bmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCit2b2lkIE5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZl
cihNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0
aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpCiB7CiAgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbiogcmVnaXN0cmF0aW9uID0gbnVsbHB0cjsKICAgICBhdXRvJiByZWdpc3RyeSA9IGVuc3Vy
ZVJhcmVEYXRhKCkuZW5zdXJlTXV0YXRpb25PYnNlcnZlckRhdGEoKS5yZWdpc3RyeTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCmluZGV4IDBlNGEwMDk1YTVlNjk2ZDkyMjcwM2IxMDIxMmZjZDkxMThkNjczOTIuLmJkZjE2
MmU3YzIxYjVjNmQzNDNmZDc2MWUwNzU1YmQ2ZTAxYTZjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMzgs
NiArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9S
b2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCkBAIC01MDAsNyArNTAxLDcgQEAgcHVibGljOgogICAgIEV2ZW50VGFy
Z2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CiAKICAgICBIYXNoTWFwPFJl
ZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJlZ2lz
dGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7Ci0gICAgdm9pZCByZWdpc3Rlck11dGF0aW9u
T2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25z
dCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOworICAgIHZvaWQgcmVnaXN0
ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImLCBNdXRhdGlvbk9ic2VydmVyT3B0
aW9ucywgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21T
dHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2Jz
ZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgcmVnaXN0ZXJU
cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaW5k
b3dFdmVudExvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50TG9vcC5jcHAK
aW5kZXggYjljMWMxOTJjZmE0MmExZmYxYTJlYzNkYjk1ZjAwYjFjZWQ5ZDQ4MC4uYTYxMzJjYjEz
NTkyNjhmZTc3NTM4YjE2NmE5Yjc3ZDJhNzYwODIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1dpbmRvd0V2ZW50TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dpbmRv
d0V2ZW50TG9vcC5jcHAKQEAgLTM0LDE0ICszNCwxNSBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZEds
b2JhbERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhhc2hNYXA8
U3RyaW5nLCBXaW5kb3dFdmVudExvb3AqPiYgd2luZG93RXZlbnRMb29wTWFwKCkKK3N0YXRpYyBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdpbmRvd0V2ZW50TG9vcCo+JiB3
aW5kb3dFdmVudExvb3BNYXAoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFdpbmRvd0V2ZW50
TG9vcCo+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgV2luZG93RXZlbnRMb29wKj4+IG1hcDsKICAgICByZXR1cm4g
bWFwLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAwYjI5MWY0YjlkNGM4
NGQyNzUzYjg5MWVlMTY1MmI2N2MwNGFmM2ZhLi5mMjQ4OWIxZTQ1ZGMwYjhhZmVhOWYzODMwZTdm
NzlhN2MzMWUzNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUGFzdGVib2FyZFdyaXRlckRhdGEuaCIKKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNl
dC5oPgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmcuaCIK
ICNpbmNsdWRlICJUZXh0RXZlbnRJbnB1dFR5cGUuaCIKQEAgLTY2Nyw4ICs2NjgsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9vdmVyd3JpdGVNb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2luc2VydGVk
QXR0YWNobWVudElkZW50aWZpZXJzOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlbW92ZWRBdHRh
Y2htZW50SWRlbnRpZmllcnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3Ry
aW5nPiBtX2luc2VydGVkQXR0YWNobWVudElkZW50aWZpZXJzOworICAgIE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9yZW1vdmVkQXR0YWNobWVudElkZW50aWZpZXJzOwog
I2VuZGlmCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fbWFyazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAppbmRleCA5M2FhOGNiYTViMDgzMmUxZjNlZWIyMWRkYmYzNDMwOGY0NmVmMWYxLi5j
MWZkM2Q3OGY3MTUxOGE4N2JkZTBkOTllYzI3YTVlMTUwZDA2YjkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCkBAIC03OSw3ICs3OSw3IEBACiAjaW5jbHVkZSAiV2Vla0lucHV0VHlwZS5o
IgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaD4KIApAQCAtOTAsNyArOTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogdHlwZWRlZiBib29sIChTZXR0aW5nczo6KklucHV0VHlwZUNvbmRpdGlvbmFsRnVuY3Rp
b24pKCkgY29uc3Q7CiB0eXBlZGVmIGNvbnN0IEF0b21TdHJpbmcmICgqSW5wdXRUeXBlTmFtZUZ1
bmN0aW9uKSgpOwogdHlwZWRlZiBSZWY8SW5wdXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlGdW5j
dGlvbikoSFRNTElucHV0RWxlbWVudCYpOwotdHlwZWRlZiBIYXNoTWFwPEF0b21TdHJpbmcsIHN0
ZDo6cGFpcjxJbnB1dFR5cGVDb25kaXRpb25hbEZ1bmN0aW9uLCBJbnB1dFR5cGVGYWN0b3J5RnVu
Y3Rpb24+PiBJbnB1dFR5cGVGYWN0b3J5TWFwOwordHlwZWRlZiBNZW1vcnlDb21wYWN0TG9va3Vw
T25seVJvYmluSG9vZEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjpwYWlyPElucHV0VHlwZUNvbmRp
dGlvbmFsRnVuY3Rpb24sIElucHV0VHlwZUZhY3RvcnlGdW5jdGlvbj4+IElucHV0VHlwZUZhY3Rv
cnlNYXA7CiAKIHRlbXBsYXRlPGNsYXNzIFQ+IHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVhdGVJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmgKaW5k
ZXggOGEzMWVhODU5OGE2MDIzNDBjYTRhMTk3ZjdiOTY0ZThkYTUyZDNjMC4uYjE4M2JiZTMwOTk0
ODhjNDk3ODI0MjBiZmYzOTliMzBmZDQ5ZjA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmgKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNo
TWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTAsNyArOTEsNyBAQCBwcml2YXRl
OgogICAgIGNsYXNzIEluc3BlY3RvckF1ZGl0Q2FjaGVkU3R5bGVTaGVldENsaWVudCA6IHB1Ymxp
YyBDYWNoZWRTdHlsZVNoZWV0Q2xpZW50IHsgfTsKICAgICBJbnNwZWN0b3JBdWRpdENhY2hlZFN0
eWxlU2hlZXRDbGllbnQgbV9jYWNoZWRTdHlsZVNoZWV0Q2xpZW50OwogCi0gICAgSGFzaE1hcDxT
dHJpbmcsIENhY2hlZFJlc291cmNlKj4gbV9yZXNvdXJjZXM7CisgICAgTWVtb3J5Q29tcGFjdFJv
YmluSG9vZEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+IG1fcmVzb3VyY2VzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKaW5kZXggMzI4ZWJlN2U2NDExOTVlNWE0Njg1MDI3
NTU5MTBmNzhjNDhiNThkOC4uM2RhNjkyZjc4ZjY5MzE3YzA3MzFlNTkwODQ3OTAxZTdiMjQ4NTUy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0Rh
dGEuY3BwCkBAIC0zMTksOSArMzE5LDEzIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlc0RhdGE6OmNs
ZWFyKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwcmVzZXJ2ZWRMb2FkZXJJZCkKICAgICBpZiAoIXBy
ZXNlcnZlZExvYWRlcklkKQogICAgICAgICBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLmNs
ZWFyKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXAu
cmVtb3ZlSWYoW2xvYWRlcklkID0gKnByZXNlcnZlZExvYWRlcklkXSAoYXV0byYgZW50cnkpIHsK
LSAgICAgICAgICAgIHJldHVybiBlbnRyeS52YWx1ZS0+bG9hZGVySWQoKSAhPSBsb2FkZXJJZDsK
LSAgICAgICAgfSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGtleXNUb1JlbW92ZTsKKyAgICAg
ICAgZm9yIChhdXRvJiBba2V5LCB2YWx1ZV0gOiBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFw
KSB7CisgICAgICAgICAgICBpZiAodmFsdWUtPmxvYWRlcklkKCkgIT0gKnByZXNlcnZlZExvYWRl
cklkKQorICAgICAgICAgICAgICAgIGtleXNUb1JlbW92ZS5hcHBlbmQoa2V5KTsKKyAgICAgICAg
fQorICAgICAgICBmb3IgKGF1dG8mIGtleVRvUmVtb3ZlIDoga2V5c1RvUmVtb3ZlKQorICAgICAg
ICAgICAgbV9yZXF1ZXN0SWRUb1Jlc291cmNlRGF0YU1hcC5yZW1vdmUoa2V5VG9SZW1vdmUpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtS
ZXNvdXJjZXNEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNl
c0RhdGEuaAppbmRleCBjOGNlZDEyYTY0MDdmZGNkNTc0ZWNjMmE3ODE5ZWRlNjYzODAzZGFjLi5h
MjRhYmQ4ODM2NjE3YmFhYTI4NGNlMWNlNWZkMmMyMzA5MWI3YTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaApAQCAtMzIsNyArMzIsNyBA
QAogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTU3LDcgKzE1Nyw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBlbnN1cmVGcmVlU3BhY2Uoc2l6ZV90KTsKIAogICAgIERlcXVl
PFN0cmluZz4gbV9yZXF1ZXN0SWRzRGVxdWU7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxSZXNvdXJjZURhdGE+PiBtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJl
c291cmNlRGF0YT4+IG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXA7CiAgICAgc2l6ZV90IG1f
Y29udGVudFNpemUgeyAwIH07CiAgICAgc2l6ZV90IG1fbWF4aW11bVJlc291cmNlc0NvbnRlbnRT
aXplOwogICAgIHNpemVfdCBtX21heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRp
b25BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmlt
YXRpb25BZ2VudC5oCmluZGV4IDVjNjMxM2U5MTc2ZjE5NDQ4NmI2Y2Y4OGM3ODE0N2RiNGI1MWJj
ZGMuLmFkYTlmODY5NWJkODQ5NzdiYzM4NDdlOTU4ZTVhY2EyNGIxY2E4MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlv
bkFnZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNw
ZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTkxLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFu
YWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdl
OwogCi0gICAgSGFzaE1hcDxTdHJpbmcsIFdlYkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBXZWJBbmltYXRpb24q
PiBtX2FuaW1hdGlvbklkTWFwOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZEFuaW1hdGlv
bklkczsKICAgICBUaW1lciBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgK
aW5kZXggNGM3YzIzOTk1Mjc2ZjM5MjVmMmI4ZjU3M2NkZDY4ZGQwYmY1ODVlNS4uOTY4N2I0Zjc4
NzUzNjYzODhjODJkYTkwMDcwNmMwNWUyNjdjNTViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaApAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0
Y2hlcnMuaD4KICNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
Um9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE0MSwxNyArMTQzLDE3IEBAIHByaXZhdGU6CiAg
ICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOwogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBS
ZWZQdHI8SW5zcGVjdG9yQ2FudmFzPj4gbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JDYW52YXM7Cisg
ICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9y
Q2FudmFzPj4gbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JDYW52YXM7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gbV9yZW1vdmVkQ2FudmFzSWRlbnRpZmllcnM7CiAgICAgVGltZXIgbV9jYW52YXNEZXN0cm95
ZWRUaW1lcjsKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRy
PEluc3BlY3RvclNoYWRlclByb2dyYW0+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW07
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbT4+IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbTsKICAgICBW
ZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnM7CiAgICAgVGltZXIgbV9w
cm9ncmFtRGVzdHJveWVkVGltZXI7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQogCi0gICAgSGFz
aFNldDxTdHJpbmc+IG1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnM7CisgICAgTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX3JlY29yZGluZ0NhbnZhc0lkZW50aWZpZXJz
OwogCiAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fcmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFt
ZUNvdW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggMGU4ZTJiNmFhMzkyZjkwMGIy
YWQyZmY2YTI1OWYxOTNjNzg1M2EzYi4uZTA4M2M4YjRkOTlkMjkxZWI0YmRkMzg0MDQ5NWYyZDkx
OTYwZjI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAt
OTgsMTMgKzk5LDEzIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6RE9NRGVidWdn
ZXJCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBJbnNwZWN0b3I6
OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAKLSAgICBI
YXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fbGlzdGVuZXJCcmVha3BvaW50
czsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJy
ZWFrcG9pbnQ+PiBtX2xpc3RlbmVyQnJlYWtwb2ludHM7CiAgICAgUmVmUHRyPEpTQzo6QnJlYWtw
b2ludD4gbV9wYXVzZU9uQWxsSW50ZXJ2YWxzQnJlYWtwb2ludDsKICAgICBSZWZQdHI8SlNDOjpC
cmVha3BvaW50PiBtX3BhdXNlT25BbGxMaXN0ZW5lcnNCcmVha3BvaW50OwogICAgIFJlZlB0cjxK
U0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbFRpbWVvdXRzQnJlYWtwb2ludDsKIAotICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV91cmxUZXh0QnJlYWtwb2ludHM7
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9pbnQ+PiBtX3VybFJlZ2V4QnJl
YWtwb2ludHM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWY8
SlNDOjpCcmVha3BvaW50Pj4gbV91cmxUZXh0QnJlYWtwb2ludHM7CisgICAgTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV91cmxSZWdl
eEJyZWFrcG9pbnRzOwogICAgIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbFVS
THNCcmVha3BvaW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAppbmRleCA2ZGU3NDZlMTdkNmViNzk2
ZjE3YTZiY2UzMjJmNWNhMDgwNzYzMTc4Li4xNjRlY2JlMzFiM2IwNzVjZWU1NDQ1ZTBhMmJkZDUy
MjJiNjlmOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
Ikluc3BlY3RvcldlYkFnZW50QmFzZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3Bl
Y3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpEYXRhYmFzZUZyb250ZW5kRGlzcGF0Y2hl
cj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6RGF0YWJhc2VC
YWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAotICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZT4+IG1fcmVzb3VyY2VzOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvckRh
dGFiYXNlUmVzb3VyY2U+PiBtX3Jlc291cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TmV0d29ya0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5oCmluZGV4IDcyZjQyM2ZmNjEyNzdlZWY0YmQzNTYzMjhjNDZkM2JkOTEz
MWZmNjUuLmI5NTZjZWU2YTE3YTM3ZWNkZDdlY2QzNDJmMTFjNmRjMTQ1YzQwMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3Jr
QWdlbnQuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlZ3Vs
YXJFeHByZXNzaW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
SlNPTlZhbHVlcy5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAKIG5hbWVz
cGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwpAQCAtMjI1LDcg
KzIyNiw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Jlc291cmNl
c0RhdGE+IG1fcmVzb3VyY2VzRGF0YTsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1f
ZXh0cmFSZXF1ZXN0SGVhZGVyczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4gbV9leHRyYVJlcXVlc3RIZWFkZXJzOwogICAgIEhhc2hTZXQ8UmVzb3Vy
Y2VMb2FkZXJJZGVudGlmaWVyPiBtX2hpZGRlblJlcXVlc3RJZGVudGlmaWVyczsKIAogICAgIHN0
cnVjdCBJbnRlcmNlcHQgewpAQCAtMjQzLDggKzI0NCw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0K
ICAgICB9OwogICAgIFZlY3RvcjxJbnRlcmNlcHQ+IG1faW50ZXJjZXB0czsKLSAgICBIYXNoTWFw
PFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXF1ZXN0Pj4gbV9wZW5k
aW5nSW50ZXJjZXB0UmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxQZW5kaW5nSW50ZXJjZXB0UmVzcG9uc2U+PiBtX3BlbmRpbmdJbnRlcmNlcHRSZXNwb25zZXM7
CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8UGVuZGluZ0ludGVyY2VwdFJlcXVlc3Q+PiBtX3BlbmRpbmdJbnRlcmNlcHRSZXF1ZXN0czsK
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxQZW5kaW5nSW50ZXJjZXB0UmVzcG9uc2U+PiBtX3BlbmRpbmdJbnRlcmNlcHRSZXNwb25zZXM7
CiAKICAgICAvLyBGSVhNRTogSW5zcGVjdG9yTmV0d29ya0FnZW50IHNob3VsZCBub3QgYmUgYXdh
cmUgb2Ygc3R5bGUgcmVjYWxjdWxhdGlvbi4KICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6TmV0d29yazo6SW5pdGlhdG9yPiBtX3N0eWxlUmVjYWxjdWxhdGlvbkluaXRpYXRvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2Vu
dC5oCmluZGV4IDNkNWU1NjZkYmUwYzVlYzExZDllOGRmNjdmY2YwYTcwOTg4YTJmOGYuLjczNDI0
YzJkM2IyYWQ5ODg5YTU2NmZmNjFmZDg2YTUwYzk5MTQ3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMzYsNyAr
MzYsNyBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNv
bmRzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE2Nyw3ICsxNjcs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gRklYTUU6IE1ha2UgYSBXZWFrSGFzaE1hcCBhbmQgdXNl
IGl0IGZvciBtX2ZyYW1lVG9JZGVudGlmaWVyIGFuZCBtX2xvYWRlclRvSWRlbnRpZmllci4KICAg
ICBIYXNoTWFwPEZyYW1lKiwgU3RyaW5nPiBtX2ZyYW1lVG9JZGVudGlmaWVyOwotICAgIEhhc2hN
YXA8U3RyaW5nLCBXZWFrUHRyPEZyYW1lPj4gbV9pZGVudGlmaWVyVG9GcmFtZTsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8RnJhbWU+PiBtX2lkZW50
aWZpZXJUb0ZyYW1lOwogICAgIEhhc2hNYXA8RG9jdW1lbnRMb2FkZXIqLCBTdHJpbmc+IG1fbG9h
ZGVyVG9JZGVudGlmaWVyOwogICAgIFN0cmluZyBtX3VzZXJBZ2VudE92ZXJyaWRlOwogICAgIFN0
cmluZyBtX2VtdWxhdGVkTWVkaWE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5kZXggZTFiYmQ4Zjk0NmU0MWYzMDFh
OGZmODdmNzRhZmUzOTlkNjFmZWMyOC4uNjIxYTlmMzUyMDRjMzBlNjBjMTMyNTkxYzdlNWEzNjI4
NTY4MTMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIldvcmtl
ckluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJv
bnRlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElu
c3BlY3Rvcjo6V29ya2VyQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAK
ICAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFdlYWtQdHI8V29ya2VySW5z
cGVjdG9yUHJveHk+PiBtX2Nvbm5lY3RlZFByb3hpZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBXZWFrUHRyPFdvcmtlckluc3BlY3RvclByb3h5Pj4gbV9jb25u
ZWN0ZWRQcm94aWVzOwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDMxY2Y3OGNhNWIxNDM1NTFh
M2JhNzUwMjNhZmNhNTQzZmNlNDk0MzQuLjJhNWJmMjNmMzg1NDkzYzBiYzIzYWYzOTMxMjA2Yzkx
YmVjYTI0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAt
MjUxNCw3ICsyNTE0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGVudEZpbHRlckhhbmRs
ZVByb3Zpc2lvbmFsTG9hZEZhaWx1cmUoY29uc3QgUmVzb3VyY2VFcnIKIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6c2V0QWN0aXZlQ29udGVudFJ1bGVMaXN0QWN0aW9uUGF0dGVybnMoY29uc3QgSGFz
aE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PiYgcGF0dGVybnMpCiB7Ci0gICAgSGFzaE1hcDxT
dHJpbmcsIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+PiBwYXJzZWRQYXR0ZXJuTWFwOwor
ICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPFVzZXJDb250
ZW50VVJMUGF0dGVybj4+IHBhcnNlZFBhdHRlcm5NYXA7CiAKICAgICBmb3IgKGF1dG8mIHBhaXIg
OiBwYXR0ZXJucykgewogICAgICAgICBWZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBwYXR0
ZXJuVmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBjNjQ1
MGQ1MDcyZDBlZmQwNDMwYjZkM2U1NDIwZDJkMmIzZTk0M2NiLi5lOWM4YjY0ZjQ5MDUyNGMzMjE2
MmI5YTA5MDAwNDlkNzBlZWRkMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaApAQCAtNTUsNiArNTUsOCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklG
RVNUKQpAQCAtNjMzLDcgKzYzNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gbV9wYXJzZWRBcmNoaXZlRGF0YTsKICNlbmRpZgogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1f
cmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFz
aFNldDxTdHJpbmc+IG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dDsKICAgICBWZWN0b3I8UmVz
b3VyY2VSZXF1ZXN0PiBtX3Jlc291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5v
dGlmaWNhdGlvbjsKICAgICAKICAgICBTdHJpbmcgbV9jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3Rvcnk7CkBAIC02ODAsOCArNjgyLDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFN0eWxlU2hl
ZXRDb250ZW50cz4+IG1fcGVuZGluZ05hbWVkQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXRzOwot
ICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+Pj4g
bV9wZW5kaW5nQ29udGVudEV4dGVuc2lvbkRpc3BsYXlOb25lU2VsZWN0b3JzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50
cz4+IG1fcGVuZGluZ05hbWVkQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXRzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IHVpbnQzMl90Pj4+IG1fcGVuZGluZ0NvbnRlbnRFeHRlbnNpb25EaXNwbGF5Tm9uZVNlbGVjdG9y
czsKICNlbmRpZgogICAgIFN0cmluZyBtX2N1c3RvbVVzZXJBZ2VudDsKICAgICBTdHJpbmcgbV9j
dXN0b21Vc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrczsKQEAgLTY4OSw3ICs2OTEsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pZGVtcG90ZW50TW9kZUF1dG9zaXppbmdPbmx5SG9ub3JzUGVy
Y2VudGFnZXMgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX2N1c3RvbU5hdmlnYXRvclBsYXRmb3Jt
OwogICAgIGJvb2wgbV91c2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVkIHsgdHJ1ZSB9OwotICAg
IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPj4gbV9hY3RpdmVD
b250ZW50UnVsZUxpc3RBY3Rpb25QYXR0ZXJuczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+PiBtX2FjdGl2ZUNv
bnRlbnRSdWxlTGlzdEFjdGlvblBhdHRlcm5zOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCiAgICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBtX2Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUgeyBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCAzZmFkOWE0OTMw
NzI1Zjg2YjUyZjcxMzViMmJhNjliOWE1NTQ0OWYyLi4zMGY2NjFjYzVmOWE3MjU2MjY1N2I1NTFj
MDYwOTY2ZjEyNDA1MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMDAsOCArMjAwLDggQEAgcHJp
dmF0ZToKICAgICBib29sIGNhblJlcXVlc3RBZnRlclJlZGlyZWN0aW9uKENhY2hlZFJlc291cmNl
OjpUeXBlLCBjb25zdCBVUkwmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBjb25zdCBV
UkwmIHByZVJlZGlyZWN0VVJMKSBjb25zdDsKICAgICBib29sIGNhblJlcXVlc3RJbkNvbnRlbnRE
aXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBV
UkwmKSBjb25zdDsKIAotICAgIEhhc2hTZXQ8VVJMPiBtX3ZhbGlkYXRlZFVSTHM7Ci0gICAgSGFz
aFNldDxVUkw+IG1fY2FjaGVkU1ZHSW1hZ2VzVVJMczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaFNldDxVUkw+IG1fdmFsaWRhdGVkVVJMczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5I
b29kSGFzaFNldDxVUkw+IG1fY2FjaGVkU1ZHSW1hZ2VzVVJMczsKICAgICBtdXRhYmxlIERvY3Vt
ZW50UmVzb3VyY2VNYXAgbV9kb2N1bWVudFJlc291cmNlczsKICAgICBXZWFrUHRyPERvY3VtZW50
PiBtX2RvY3VtZW50OwogICAgIERvY3VtZW50TG9hZGVyKiBtX2RvY3VtZW50TG9hZGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCA1NjMzMzAwYWQzZjExZTFiZjVkM2JlMWY1MmY1NjQ5Y2QwMTIyY2QxLi4w
NThhOTFkOGUxNjA3NjI4ZDMxNzIyODAxZDY1MzVkNjA3OWYxMTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1Jv
YmluSG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CkBAIC0xMTY0
LDggKzExNjUsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPElEQkNsaWVudDo6SURCQ29ubmVj
dGlvblRvU2VydmVyPiBtX2lkYkNvbm5lY3Rpb25Ub1NlcnZlcjsKIAotICAgIEhhc2hTZXQ8U3Ry
aW5nPiBtX3NlZW5QbHVnaW5zOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5NZWRpYUVuZ2lu
ZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5QbHVn
aW5zOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVk
aWFFbmdpbmVzOwogCiAgICAgdW5zaWduZWQgbV9sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRh
dGVzQ291bnQgeyAwIH07CiAgICAgdW5zaWduZWQgbV9mb3JiaWRQcm9tcHRzRGVwdGggeyAwIH07
CkBAIC0xMjg3LDcgKzEyODgsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFVzZXJDb250ZW50
VVJMUGF0dGVybj4gbV9jb3JzRGlzYWJsaW5nUGF0dGVybnM7CiAgICAgVmVjdG9yPFVzZXJTdHls
ZVNoZWV0PiBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb247Ci0gICAgc3RkOjpvcHRp
b25hbDxIYXNoU2V0PFN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6Om9w
dGlvbmFsPE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+PiBt
X2FsbG93ZWROZXR3b3JrSG9zdHM7CiAgICAgYm9vbCBtX2lzVGFraW5nU25hcHNob3RzRm9yQXBw
bGljYXRpb25TdXNwZW5zaW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fbG9hZHNTdWJyZXNvdXJj
ZXMgeyB0cnVlIH07CiAgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGVkOTIwNTM0MDNk
NWVlM2IyZDczZDZjZGZjMDFjMDA0ZGJkZjZiNjguLmNkNWFjZWNlMjc5NWQ5ZGM0YjA3NjZkMmM2
ZDQxMmNjNWYyMzJhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
QEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxk
IGJlIGFsbCBiZSBTZXR0aW5ncy4KICAgICBib29sIGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9
OwotICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxTdHJpbmc+PiBhbGxvd2VkTmV0d29ya0hvc3Rz
OworICAgIHN0ZDo6b3B0aW9uYWw8TWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNo
U2V0PFN0cmluZz4+IGFsbG93ZWROZXR3b3JrSG9zdHM7CiAgICAgYm9vbCB1c2VyU2NyaXB0c1No
b3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUgfTsKICAgICBTaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyB7
IFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOjpObyB9OwogICAgIGJvb2wgaHR0
cHNVcGdyYWRlRW5hYmxlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeU1lZGlhTGlzdERpcmVjdGl2ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZl
LmgKaW5kZXggZDk5MTQ4MWZhYzk1ZGI1Zjg1NDE0MDFmMGI3MDE0MDdiMjAyMTkzYi4uN2NiZmZm
ZTY2MzVjOTI5OGNiOTYxMjliNTI4MDk1MzFlZWU4YWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFM
aXN0RGlyZWN0aXZlLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0Myw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKIAotICAg
IEhhc2hTZXQ8U3RyaW5nPiBtX3BsdWdpblR5cGVzOworICAgIE1lbW9yeUNvbXBhY3RMb29rdXBP
bmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fcGx1Z2luVHlwZXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmgKaW5kZXggY2I2YTU4ODBiODA4NWMwNjJl
MmM5MGU1YjQ1OWUzMzgxMzI3NjRkMy4uMDk5MzM5MDRkZTc3OGIyOWIxNTE1YjZjN2M4ZjlmODVl
OGJjZGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5U291cmNlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaApAQCAtMjksOCArMjksOCBAQAogI2luY2x1ZGUg
IkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGlj
eUhhc2guaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuaCIKLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRl
IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtODksNyArODksNyBAQCBw
cml2YXRlOgogCiAgICAgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5JiBtX3BvbGljeTsKICAg
ICBWZWN0b3I8Q29udGVudFNlY3VyaXR5UG9saWN5U291cmNlPiBtX2xpc3Q7Ci0gICAgSGFzaFNl
dDxTdHJpbmc+IG1fbm9uY2VzOworICAgIE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29k
SGFzaFNldDxTdHJpbmc+IG1fbm9uY2VzOwogICAgIEhhc2hTZXQ8Q29udGVudFNlY3VyaXR5UG9s
aWN5SGFzaD4gbV9oYXNoZXM7CiAgICAgT3B0aW9uU2V0PENvbnRlbnRTZWN1cml0eVBvbGljeUhh
c2hBbGdvcml0aG0+IG1faGFzaEFsZ29yaXRobXNVc2VkOwogICAgIFN0cmluZyBtX2RpcmVjdGl2
ZU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3Ry
eS5jcHAKaW5kZXggNDNjMDNiZWU4NDE3M2EwMjJlMTg0NjFkODBiODg1YzFiZjkwMjhkZi4uMjU3
MmI3YWYwMzYzOTc1OTAwNDYxYzVkMDBiNmMxYTgwOWI0NDZkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KIAogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKQEAgLTIzNSwxMCArMjM2LDEwIEBAIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0
cnk6OnJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0xvY2FsKGNvbnN0IFN0cmluZyYgc2NoZW1l
CiAgICAgbG9jYWxVUkxTY2hlbWVzKCkucmVtb3ZlKHNjaGVtZSk7CiB9CiAKLXN0YXRpYyBIYXNo
U2V0PFN0cmluZz4mIHNjaGVtZXNIYW5kbGVkQnlTY2hlbWVIYW5kbGVyKCkgV1RGX1JFUVVJUkVT
X0xPQ0soc2NoZW1lUmVnaXN0cnlMb2NrKQorc3RhdGljIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RI
YXNoU2V0PFN0cmluZz4mIHNjaGVtZXNIYW5kbGVkQnlTY2hlbWVIYW5kbGVyKCkgV1RGX1JFUVVJ
UkVTX0xPQ0soc2NoZW1lUmVnaXN0cnlMb2NrKQogewogICAgIEFTU0VSVChzY2hlbWVSZWdpc3Ry
eUxvY2suaXNIZWxkKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmlu
Zz4+IHNldDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hTZXQ8U3RyaW5nPj4gc2V0OwogICAgIHJldHVybiBzZXQuZ2V0KCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaAppbmRleCBjMDliNmRlMzFmMmVk
ZWJlMDE4OGRjOWM0NjZhMjcxZTFiOGI5ZTE0Li40MjRjNzFjNGJlMmNlODE1MzhhOTJlN2Y1ZmFl
YTE3ZTljMDVjMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdGF0aWNQ
YXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2Fy
ZC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlBhc3RlYm9h
cmQuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KIApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
UGFzdGVib2FyZEN1c3RvbURhdGEgbV9jdXN0b21EYXRhOwotICAgIEhhc2hTZXQ8U3RyaW5nPiBt
X25vbkRlZmF1bHREYXRhVHlwZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hTZXQ8
U3RyaW5nPiBtX25vbkRlZmF1bHREYXRhVHlwZXM7CiAgICAgUGFzdGVib2FyZDo6RmlsZUNvbnRl
bnRTdGF0ZSBtX2ZpbGVDb250ZW50U3RhdGUgeyBQYXN0ZWJvYXJkOjpGaWxlQ29udGVudFN0YXRl
OjpOb0ZpbGVPckltYWdlRGF0YSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDI2MzlmMWJkOWQ5
ZDRiM2FmODJiZDA2MDk3YWFhY2MyNTYxYzg1ODMuLjc4YmYzYzMxZjdlNGE4YWZjOWRlNDY4Y2Y1
Y2JkODcwODBiZDQ0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRl
IDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgog
CkBAIC0xOTAsNyArMTkxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzQXVkaW8geyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNlIH07CiAKLSAgICBIYXNoTWFwPEF0b21T
dHJpbmcsIFVuaXF1ZVJlZjxUcmFja0J1ZmZlcj4+IG1fdHJhY2tCdWZmZXJNYXA7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8QXRvbVN0cmluZywgVW5pcXVlUmVmPFRyYWNrQnVm
ZmVyPj4gbV90cmFja0J1ZmZlck1hcDsKIAogICAgIFNvdXJjZUJ1ZmZlckFwcGVuZE1vZGUgbV9h
cHBlbmRNb2RlIHsgU291cmNlQnVmZmVyQXBwZW5kTW9kZTo6U2VnbWVudHMgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRi5jcHAKaW5kZXggYmUxYjZjNGE0ZWIxNzY0ZTRlNWQzNjFmYjliZjkyNjNmMjNlZTc2Ni4u
MjE1ZDA1MDY4ZmE4NmRhMGI4OTUwNjNjOTc1YmVhZWRlNmU2YTMwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCkBAIC02OSw2ICs2OSw3IEBACiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTIwNiw3
ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYqIG1fY3Vy
cmVudFRleHRUcmFjazsKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xPQURFUl9ERUxFR0FURSkK
LSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFJldGFpblB0cjxBVkNGQXNzZXRSZXNvdXJjZUxv
YWRpbmdSZXF1ZXN0UmVmPj4+IG1fa2V5VVJJVG9SZXF1ZXN0TWFwOworICAgIE1lbW9yeUNvbXBh
Y3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmVjdG9yPFJldGFpblB0cjxBVkNGQXNzZXRSZXNv
dXJjZUxvYWRpbmdSZXF1ZXN0UmVmPj4+IG1fa2V5VVJJVG9SZXF1ZXN0TWFwOwogICAgIEFWQ0ZB
c3NldFJlc291cmNlTG9hZGVyQ2FsbGJhY2tzIG1fcmVzb3VyY2VMb2FkZXJDYWxsYmFja3M7CiAj
ZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggOTllZDdlMTRlNTg4MzhlYTU5NjVh
MTgwMmZiZGM2YjUwY2YwNzBmYy4uMGNjOWQzZTA1MWQzZDg5YzkxZTU2YWE2ZWIyMjdkMWI0ZWE5
M2E4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIgogI2luY2x1ZGUgPENvcmVNZWRpYS9D
TVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RI
YXNoTWFwLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldEltYWdlR2VuZXJhdG9yOwogT0JKQ19DTEFT
UyBBVkFzc2V0VHJhY2s7CkBAIC0zODcsOCArMzg3LDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOwogICAgIEhhc2hNYXA8UmV0YWluUHRyPENG
VHlwZVJlZj4sIFJlZlB0cjxXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI+PiBtX3Jlc291cmNlTG9h
ZGVyTWFwOwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGU+IG1fbG9hZGVy
RGVsZWdhdGU7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxBVkFzc2V0UmVzb3VyY2VM
b2FkaW5nUmVxdWVzdD4+IG1fa2V5VVJJVG9SZXF1ZXN0TWFwOwotICAgIEhhc2hNYXA8U3RyaW5n
LCBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+PiBtX3Nlc3Npb25JRFRv
UmVxdWVzdE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFJl
dGFpblB0cjxBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdD4+IG1fa2V5VVJJVG9SZXF1ZXN0
TWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmV0YWluUHRy
PEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0Pj4gbV9zZXNzaW9uSURUb1JlcXVlc3RNYXA7
CiAKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtTGVnaWJsZU91dHB1dD4gbV9sZWdpYmxlT3V0
cHV0OwogCkBAIC00MDMsNyArNDAzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGPiBtX21ldGFkYXRhVHJhY2s7CiAjZW5kaWYKIAotICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5iYW5kQ2hhcHRlclRyYWNrUHJpdmF0ZUFWRk9iakM+
PiBtX2NoYXB0ZXJUcmFja3M7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8SW5iYW5kQ2hhcHRlclRyYWNrUHJpdmF0ZUFWRk9iakM+PiBtX2NoYXB0ZXJU
cmFja3M7CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiBQTEFURk9S
TShNQUMpCiAgICAgUmV0YWluUHRyPEFWT3V0cHV0Q29udGV4dD4gbV9vdXRwdXRDb250ZXh0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCBjNGEzMWJlNTVjNTNlOTRkZGNmNTE0OGU1ZDNh
NWNhZTg5MzMyNWRmLi45ZjVlMjIwMzA5OTAwMmIzZmVkOGJjMGZmMzM1NGFlMTUwNzhiNGJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2Vy
SGVscGVyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KIAogT0JKQ19DTEFT
UyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKIE9CSkNfQ0xBU1MgV2ViUm9vdFNhbXBsZUJ1
ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyOwpAQCAtMjQzLDggKzI0NCw4IEBAIHByaXZhdGU6CiAg
ICAgfTsKICAgICBDdXJyZW50RnJhbWVQYWludGVyIG1faW1hZ2VQYWludGVyOwogCi0gICAgSGFz
aE1hcDxTdHJpbmcsIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPj4gbV9hdWRpb1Ry
YWNrTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbT4+IG1fdmlkZW9UcmFja01hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1h
cDxTdHJpbmcsIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPj4gbV9hdWRpb1RyYWNr
TWFwOworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmPFZpZGVv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+PiBtX3ZpZGVvVHJhY2tNYXA7CiAKICAgICBNZWRpYVBs
YXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZTo6RW1wdHkgfTsKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUg
eyBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQppbmRleCAyNjY3Y2FmNjk5MjEwMDUxMjJhZWJmNWUwMzEyMGY2ZjlmYmI4ZGE3
Li43ZWY0YTk5YjA0MWFmNWE0MDZmYTJhMTZjNWQyYTc4ZTI3ZGE0NTA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCkBAIC04MjksNyArODI5LDcgQEAgZW51bSBjbGFzcyBUcmFja0tpbmQg
ewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFJlZlQ+Ci12b2lkIHVwZGF0ZVRyYWNrc09mS2lu
ZChIYXNoTWFwPFN0cmluZywgUmVmVD4mIHRyYWNrTWFwLCBUcmFja0tpbmQgdHJhY2tLaW5kLCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgY3VycmVudFRyYWNrcywgUmVmVCAoKml0ZW1G
YWN0b3J5KShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpLCBjb25zdCBGdW5jdGlvbjx2b2lkKHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjx0eXBlbmFt
ZSBSZWZUOjpQdHJUcmFpdHM6OlN0b3JhZ2VUeXBlPjo6dHlwZT4sIGludCwgVHJhY2tTdGF0ZSk+
JiBjb25maWd1cmVUcmFjaykKK3ZvaWQgdXBkYXRlVHJhY2tzT2ZLaW5kKE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmVD4mIHRyYWNrTWFwLCBUcmFja0tpbmQgdHJhY2tL
aW5kLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgY3VycmVudFRyYWNrcywgUmVmVCAo
Kml0ZW1GYWN0b3J5KShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpLCBjb25zdCBGdW5jdGlvbjx2
b2lkKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjx0
eXBlbmFtZSBSZWZUOjpQdHJUcmFpdHM6OlN0b3JhZ2VUeXBlPjo6dHlwZT4sIGludCwgVHJhY2tT
dGF0ZSk+JiBjb25maWd1cmVUcmFjaykKIHsKICAgICBWZWN0b3I8UmVmVD4gcmVtb3ZlZFRyYWNr
czsKICAgICBWZWN0b3I8UmVmVD4gYWRkZWRUcmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5jcHAKaW5kZXggYWNhYmEzMTRkZGNh
MDU1M2QyMDc2NjhkYzhmMTVkNDU2YjZkZTVlNS4uZDllNGVlMDRiMGZhMmY2ZjQ2OGJjMDJiNzgx
OTIyYzI2MWJlYzk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvVVRJUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1VUSVJlZ2lzdHJ5LmNwcApAQCAtODAsOSArODAsOSBAQCBjb25zdCBNZW1vcnlDb21w
YWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgZGVmYXVsdFN1cHBvcnRlZElt
YWdlVHlwZQogICAgIHJldHVybiBkZWZhdWx0U3VwcG9ydGVkSW1hZ2VUeXBlczsKIH0KIAotSGFz
aFNldDxTdHJpbmc+JiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpCitNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
cygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gYWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4+IGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzOwogICAgIHJldHVybiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVnaXN0
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1VUSVJlZ2lzdHJ5LmgK
aW5kZXggMTRhYjIyYjRjYzI4ZTc1MWRhNWEyODM2Yzc3M2I3ZjRlM2M5MTc3Ni4uMDU2YTlkN2Uy
OTY5NWM3NjNmMTBhMzBiNTMyZWYyZmFhOWFkNDdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVVRJUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9VVElSZWdpc3RyeS5oCkBAIC0zMSw3ICszMSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5I
b29kSGFzaFNldDxTdHJpbmc+JiBkZWZhdWx0U3VwcG9ydGVkSW1hZ2VUeXBlcygpOwotSGFzaFNl
dDxTdHJpbmc+JiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcygpOworTWVtb3J5Q29tcGFj
dFJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMo
KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXNGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9F
WFBPUlQgYm9vbCBpc1N1cHBvcnRlZEltYWdlVHlwZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNo
ZUNvcmVUZXh0LmNwcAppbmRleCA5ZjkwZWFhMzg1MzdhZDA2ODhkODQzYjNkOGQ4MGJiMjJlNzgz
Njg4Li4yNjQxZGVlMzk2Zjk5ZTJiZjQ1MzU3MzJjYjlhY2Y4M2I5ZTUwMmIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENh
Y2hlQ29yZVRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbmNsdWRlIDx3dGYvY29jb2EvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KIApAQCAtOTk0LDggKzk5NSw4IEBAIHByaXZh
dGU6CiAgICAgfQogCiAgICAgTG9jayBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2s7
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxJbnN0YWxsZWRGb250RmFtaWx5
Pj4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2Zh
bWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2spOwotICAgIEhhc2hNYXA8U3RyaW5nLCBJbnN0
YWxsZWRGb250PiBtX3Bvc3RTY3JpcHROYW1lVG9Gb250RGVzY3JpcHRvcnM7CisgICAgTWVtb3J5
Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8SW5zdGFsbGVk
Rm9udEZhbWlseT4+IG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnNMb2NrKTsKKyAgICBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIEluc3RhbGxlZEZvbnQ+IG1fcG9zdFNjcmlwdE5h
bWVUb0ZvbnREZXNjcmlwdG9yczsKICAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29y
ZVRleHQuY3BwCmluZGV4IDU3NjJlMDg5M2Q5OTNiNDM5YjkwNTg5MmIxNjI1Njc2MDliNWJkNWIu
LjExMDIyNDNjZWU2MjFjMDFkYTJhNTVkYWIzMzg5OGFlMmY5NDA5NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNv
cmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
eXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCBWZWN0b3I8
UmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+PiBTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dDo6Y2FzY2FkZUxpc3QoYwogICAgIHJldHVybiBjYXNjYWRlTGlzdChzeXN0ZW1Gb250UGFyYW1l
dGVycyhkZXNjcmlwdGlvbiwgY3NzRmFtaWx5LCBzeXN0ZW1Gb250S2luZCwgYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpLCBzeXN0ZW1Gb250S2luZCk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgZ2VuZXJp
Y0ZhbWlseShjb25zdCBTdHJpbmcmIGxvY2FsZSwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIG1h
cCwgQ0ZTdHJpbmdSZWYgY3RLZXkpCitzdGF0aWMgU3RyaW5nIGdlbmVyaWNGYW1pbHkoY29uc3Qg
U3RyaW5nJiBsb2NhbGUsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYgbWFwLCBDRlN0cmluZ1JlZiBjdEtleSkKIHsKICAgICByZXR1cm4gbWFwLmVuc3VyZShs
b2NhbGUsIFsmXSB7CiAgICAgICAgIGF1dG8gZGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVz
Y3JpcHRvckNyZWF0ZUZvckNTU0ZhbWlseShjdEtleSwgbG9jYWxlLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5oCmluZGV4IDVkMzM1
ZmMyNGU3NTMxOWQ1YTgwMzNkNTQyOWNhMTI3ZDYxOWRhZjIuLmMzYjU3MWRiOWUyNTM2NjU5OTVi
OGM2OWY1ZTgxOGE1Njg0NzE3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRl
eHQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ29yZVRleHRTUEku
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+
CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIApAQCAt
MTEzLDExICsxMTQsMTEgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8Q2FzY2FkZUxpc3RQYXJh
bWV0ZXJzLCBWZWN0b3I8UmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+PiwgQ2FzY2FkZUxp
c3RQYXJhbWV0ZXJzOjpIYXNoLCBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8Q2FzY2FkZUxpc3RQYXJh
bWV0ZXJzPj4gbV9zeXN0ZW1Gb250Q2FjaGU7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiBtX3NlcmlmRmFtaWxpZXM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zYW5zU2Vy
aWZlcmlmRmFtaWxpZXM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9jdXJzaXZlRmFt
aWxpZXM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9mYW50YXN5RmFtaWxpZXM7Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9tb25vc3BhY2VGYW1pbGllczsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zZXJpZkZhbWlsaWVz
OworICAgIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3Nh
bnNTZXJpZmVyaWZGYW1pbGllczsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4gbV9jdXJzaXZlRmFtaWxpZXM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmlu
SG9vZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fZmFudGFzeUZhbWlsaWVzOworICAgIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX21vbm9zcGFjZUZhbWls
aWVzOwogfTsKIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBjb25zdCBTeXN0ZW1G
b250RGF0YWJhc2VDb3JlVGV4dDo6Q2FzY2FkZUxpc3RQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCmluZGV4IDA1OGI3ZTlj
ZjEwNTNkZWEwNTBhODIxZjk5ODljY2M5Y2Y5OGNiZmUuLjAxODdmNWEzMWU4MjQ2NWVjOTdiNWY2
MWEwM2EyZTZiNGY1NWRhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9UaHJlYWRDaGVjay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFk
Q2hlY2subW0KQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2ltcG9y
dCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9y
dCA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTAxLDcgKzEwMSw3IEBAIHZv
aWQgV2ViQ29yZVJlcG9ydFRocmVhZFZpb2xhdGlvbihjb25zdCBjaGFyKiBmdW5jdGlvbiwgV2Vi
Q29yZTo6VGhyZWFkVmlvbGF0aW9uCiAgICAgaWYgKHJvdW5kID49IE1heGltdW1UaHJlYWRWaW9s
YXRpb25Sb3VuZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEhhc2hTZXQ8U3RyaW5nPj4gbG9nZ2VkRnVuY3Rpb25zOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+PiBsb2dnZWRGdW5jdGlv
bnM7CiAgICAgc3dpdGNoICh0aHJlYWRWaW9sYXRpb25CZWhhdmlvcltyb3VuZF0pIHsKICAgICAg
ICAgY2FzZSBOb1RocmVhZENoZWNrOgogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5o
CmluZGV4IDdmMmViNDVlZjExODZlMGY3NTFlNzMxMTA4NTlmYzExMmFkNjYwZDIuLjdkZmE3MWUz
MmJlMmM0OWJiZWRjYzc0NDNiMGU0NzA3MTM4OWI1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0z
OSw5ICszOSw5IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvVVVJRC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hh
c2hTZXQuaD4KQEAgLTEzMyw3ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIFdlYWtIYXNoU2V0PE9i
c2VydmVyPiBtX29ic2VydmVyczsKICAgICBTdHJpbmcgbV9pZDsKICAgICBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSogbV9hY3RpdmVWaWRlb1RyYWNrIHsgbnVsbHB0ciB9OwotICAgIEhhc2hNYXA8
U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrU2V0OworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPj4gbV90cmFja1NldDsKICAgICBib29sIG1faXNBY3RpdmUgeyBmYWxzZSB9
OwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVn
aXN0cnlJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuaAppbmRleCBlZWJkODZjMzIyY2Y3NTUzYzVhNGYzMjc2YWU4N2RiODIzYmQ0OWU2Li4y
YTFiMjNlZDFjZDg3OWI5NGJhZThiN2M0NTAwYjc2NGRjMTE1ZjJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaApAQCAtMzQsNyAr
MzQsNyBAQAogI2luY2x1ZGUgIkJsb2JEYXRhLmgiCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5Lmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxI
YXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRk
QmxvYkRhdGEoY29uc3QgU3RyaW5nJiB1cmwsIFJlZlB0cjxCbG9iRGF0YT4mJik7CiAKICAgICBI
YXNoQ291bnRlZFNldDxTdHJpbmc+IG1fYmxvYlJlZmVyZW5jZXM7Ci0gICAgSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxCbG9iRGF0YT4+IG1fYmxvYnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9v
ZEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8QmxvYkRhdGE+PiBtX2Jsb2JzOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9DcmVkZW50aWFsU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsU3RvcmFnZS5oCmluZGV4IGQwZTE2ZjdiYjUyNTkzYzc5OTJmYWM5ZGQyY2Zi
OTU3OWY4NThkM2IuLjQwZTlhMDFmMDAxZDA5NGU2ODViMDNjYjc0Y2QwNGM3ZTc2NWNmYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3Jh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9y
YWdlLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJQcm90ZWN0aW9uU3BhY2VIYXNoLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTdHJpbmcgLyogcGFydGl0aW9uTmFtZSAqLywgUHJvdGVj
dGlvblNwYWNlPiwgQ3JlZGVudGlhbD4gbV9wcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXA7
Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fb3JpZ2luc1dpdGhDcmVkZW50aWFsczsKKyAgICBNZW1v
cnlDb21wYWN0Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IG1fb3JpZ2luc1dpdGhDcmVkZW50aWFs
czsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFByb3RlY3Rpb25TcGFjZT4gUGF0aFRv
RGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcDsKICAgICBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNw
YWNlTWFwIG1fcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmlu
ZGV4IDMzMDk5NDViZDQ5YTY5MGE2NWY3M2VjM2VkM2Q3YjI0NWFjMDI3MmQuLmRlY2ExNzY1MjNi
ODgzOGZkOWQwY2YzNjVhYTQ5YzI0YmUwMmRkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMzQsNyAr
MzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CkBAIC0yNjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKICNpZiBIQVZFKENP
T0tJRV9DSEFOR0VfTElTVEVORVJfQVBJKQogICAgIGJvb2wgbV9kaWRSZWdpc3RlckNvb2tpZUxp
c3RlbmVycyB7IGZhbHNlIH07CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVNldD4gbV9zdWJzY3Jp
YmVkRG9tYWluc0ZvckNvb2tpZUNoYW5nZXM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIEhhc2hTZXQ8
Q29va2llQ2hhbmdlT2JzZXJ2ZXIqPj4gbV9jb29raWVDaGFuZ2VPYnNlcnZlcnM7CisgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBIYXNoU2V0PENvb2tpZUNoYW5nZU9i
c2VydmVyKj4+IG1fY29va2llQ2hhbmdlT2JzZXJ2ZXJzOwogI2VuZGlmCiAKICAgICBDcmVkZW50
aWFsU3RvcmFnZSBtX2NyZWRlbnRpYWxTdG9yYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlZmVyZW5jZWRTVkdSZXNvdXJjZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZWZlcmVuY2VkU1ZHUmVzb3VyY2VzLmgKaW5kZXggMDc3YmJiYTg4YmE3ODRiOWE5
ZDJhMWFkYTBlMjRjZGExNDRhYzY3OS4uODE2ZDdkN2FjNjMyNzU4NjcwYjYzZDlhZWU2YTI2YTcy
MzMzMzQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlZmVyZW5jZWRT
VkdSZXNvdXJjZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVmZXJlbmNlZFNW
R1Jlc291cmNlcy5oCkBAIC0yNiw4ICsyNiw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmlu
Z0hhc2guaD4KIApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50Rm9yVGFyZ2V0KERvY3VtZW50JiwgY29uc3QgQXRvbVN0cmluZyYpOwogCiAgICAgUmVuZGVy
RWxlbWVudCYgbV9yZW5kZXJlcjsKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVl
X3B0cjxDU1NTVkdSZXNvdXJjZUVsZW1lbnRDbGllbnQ+PiBtX2VsZW1lbnRDbGllbnRzOworICAg
IE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxDU1NTVkdSZXNvdXJjZUVsZW1lbnRDbGllbnQ+PiBtX2VsZW1lbnRDbGllbnRzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0
ZW5zaW9ucy5oCmluZGV4IDliYmQ3N2JiY2M1M2I1OGY4ZDkwNTE2Y2RiYzEzOWEzYmRkMWZlZGUu
LmNmYTYyZWUzNzUwY2QzMGU2YmQ1NzhmNWQyYjA1NTdlYjU5NjcxYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNo
Lmg+CiAKQEAgLTc2LDkgKzc3LDkgQEAgcHJpdmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVu
dDsKICAgICBXZWFrSGFzaFNldDxTVkdTVkdFbGVtZW50PiBtX3RpbWVDb250YWluZXJzOyAvLyBG
b3IgU1ZHIDEuMiBzdXBwb3J0IHRoaXMgd2lsbCBuZWVkIHRvIGJlIG1hZGUgbW9yZSBnZW5lcmFs
LgogICAgIFdlYWtIYXNoU2V0PFNWR0ZvbnRGYWNlRWxlbWVudD4gbV9zdmdGb250RmFjZUVsZW1l
bnRzOwotICAgIEhhc2hNYXA8QXRvbVN0cmluZywgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIq
PiBtX3Jlc291cmNlczsKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFdlYWtIYXNoU2V0PEVsZW1l
bnQ+PiBtX3BlbmRpbmdSZXNvdXJjZXM7IC8vIFJlc291cmNlcyB0aGF0IGFyZSBwZW5kaW5nLgot
ICAgIEhhc2hNYXA8QXRvbVN0cmluZywgV2Vha0hhc2hTZXQ8RWxlbWVudD4+IG1fcGVuZGluZ1Jl
c291cmNlc0ZvclJlbW92YWw7IC8vIFJlc291cmNlcyB0aGF0IGFyZSBwZW5kaW5nIGFuZCBzY2hl
ZHVsZWQgZm9yIHJlbW92YWwuCisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8QXRv
bVN0cmluZywgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqPiBtX3Jlc291cmNlczsKKyAgICBN
ZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBXZWFrSGFzaFNldDxFbGVt
ZW50Pj4gbV9wZW5kaW5nUmVzb3VyY2VzOyAvLyBSZXNvdXJjZXMgdGhhdCBhcmUgcGVuZGluZy4K
KyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxBdG9tU3RyaW5nLCBXZWFrSGFzaFNl
dDxFbGVtZW50Pj4gbV9wZW5kaW5nUmVzb3VyY2VzRm9yUmVtb3ZhbDsgLy8gUmVzb3VyY2VzIHRo
YXQgYXJlIHBlbmRpbmcgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbC4KICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHUmVzb3VyY2VzQ2FjaGU+IG1fcmVzb3VyY2VzQ2FjaGU7CiAKICAgICBWZWN0b3I8
UmVmPFNWR0VsZW1lbnQ+PiBtX3JlYnVpbGRFbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5o
CmluZGV4IGNjMmJiOGFhNTkzZjI0YTY3YmQyMDVkNzE5NDJiMDU3ZTI4Yzk2YTAuLjUzZWRkZjNh
ZjdhMjEzY2YyOWY1NDNiNTJhNzVjNmI3YjM2YmQ1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aApAQCAtMTE1LDkgKzExNSw2IEBAIHByaXZhdGU6CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgbV9y
dW50aW1lRmxhZ3M7CiAgICAgRGVxdWU8UmVmUHRyPEV2ZW50Pj4gbV9wZW5kaW5nRXZlbnRzOwog
ICAgIGJvb2wgbV93YXNUZXJtaW5hdGVkIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUoV0VCX1JUQykK
LSAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1lcnM7Ci0jZW5kaWYKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBtX2NsaWVudElkZW50aWZpZXI7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggZWQ3ODkzY2JjODIy
YTc4MzVmODA0ZDU5MmE2YjQ3YWQ0ZjhlNzlkMi4uMjA1YzVjNGY2Y2IxZjAyM2MwMDBhZDgxYmNl
ZmZjOTc3MWNlY2M5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaApAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVN
ZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9GaXhlZFZlY3Rvci5o
PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJl
SGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtI
YXNoU2V0Lmg+CkBAIC0yMTcsNyArMjE3LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0
cjxDcnlwdG8+IG1fY3J5cHRvOwogCiAgICAgV2Vha1B0cjxTY3JpcHRCdWZmZXJTb3VyY2VQcm92
aWRlcj4gbV9tYWluU2NyaXB0U291cmNlUHJvdmlkZXI7Ci0gICAgSGFzaE1hcDxVUkwsIFdlYWtI
YXNoU2V0PFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyPj4gbV9pbXBvcnRlZFNjcmlwdHNTb3Vy
Y2VQcm92aWRlcnM7CisgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBXZWFr
SGFzaFNldDxTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlcj4+IG1faW1wb3J0ZWRTY3JpcHRzU291
cmNlUHJvdmlkZXJzOwogCiAgICAgUmVmUHRyPFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+
IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI+IG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRleHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRleHREYXRhLmgKaW5kZXggOWE2NmQ0OGIwYTI5ZDlmMjkzYTMyYmZmZTg0YTU3YzBkNzc3
MjdhNC4uYmIxNTBkZmQ4NzY0NzcwYzYxYjI2YjIwZGI5MDYyY2Q2ZDM5NWFiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
LmgiCiAjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVJMSGFzaC5o
PgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpAQCAtOTUsNyArOTUsNyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhIHsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CiAg
ICAgYm9vbCBsb2FkZWRGcm9tRGlzazsKICAgICBzdGQ6Om9wdGlvbmFsPExhc3ROYXZpZ2F0aW9u
V2FzQXBwSW5pdGlhdGVkPiBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZDsKLSAgICBIYXNo
TWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOworICAgIE1lbW9yeUNv
bXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNl
TWFwOwogICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKICAgICBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
IG5hdmlnYXRpb25QcmVsb2FkU3RhdGU7CiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4gU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpk
ZWNvZGUoRGVjb2RlcgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgSGFzaE1h
cDxVUkwsIEltcG9ydGVkU2NyaXB0PiBzY3JpcHRSZXNvdXJjZU1hcDsKKyAgICBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0PiBzY3JpcHRSZXNvdXJjZU1h
cDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjcmlwdFJlc291cmNlTWFwKSkKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCBm
MTQ4YTNkYWViMWM3NTAxNjI1MjMxNjk0ZmY1ODQ1NTg0ZWE1OWEwLi4yMGU3YTc2OThjMTY0NTNh
NGU1YjU0ZDYzODYyNWM5ZDViYmVlNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApA
QCAtMTI5LDcgKzEyOSw3IEBAIHN0cnVjdCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0ZXMgewogICAg
IH0KIH07CiAKLXN0YXRpYyBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVzPiBz
dHJpcFNjcmlwdFNvdXJjZXMoY29uc3QgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiBtYXApCitzdGF0aWMgSGFzaE1hcDxVUkwsIEltcG9ydGVk
U2NyaXB0QXR0cmlidXRlcz4gc3RyaXBTY3JpcHRTb3VyY2VzKGNvbnN0IE1lbW9yeUNvbXBhY3RS
b2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNj
cmlwdD4mIG1hcCkKIHsKICAgICBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHRBdHRyaWJ1dGVz
PiBtYXBXaXRob3V0U2NyaXB0czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtYXApCkBAIC0xMzcs
OSArMTM3LDkgQEAgc3RhdGljIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0ZXM+
IHN0cmlwU2NyaXB0U291cmNlcyhjb25zdCBIYXNoTWFwPFUKICAgICByZXR1cm4gbWFwV2l0aG91
dFNjcmlwdHM7CiB9CiAKLXN0YXRpYyBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhOjpJbXBvcnRlZFNjcmlwdD4gcG9wdWxhdGVTY3JpcHRTb3VyY2VzRnJvbURpc2soU1dTY3Jp
cHRTdG9yYWdlJiBzY3JpcHRTdG9yYWdlLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiByZWdpc3RyYXRpb25LZXksIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdEF0dHJpYnV0
ZXM+JiYgbWFwKQorc3RhdGljIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gcG9wdWxhdGVTY3JpcHRTb3Vy
Y2VzRnJvbURpc2soU1dTY3JpcHRTdG9yYWdlJiBzY3JpcHRTdG9yYWdlLCBjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIEhhc2hNYXA8VVJMLCBJbXBv
cnRlZFNjcmlwdEF0dHJpYnV0ZXM+JiYgbWFwKQogewotICAgIEhhc2hNYXA8VVJMLCBTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBpbXBvcnRlZFNjcmlwdHM7CisgICAg
TWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE6OkltcG9ydGVkU2NyaXB0PiBpbXBvcnRlZFNjcmlwdHM7CiAgICAgZm9yIChhdXRvJiBwYWly
IDogbWFwKSB7CiAgICAgICAgIGF1dG8gaW1wb3J0ZWRTY3JpcHQgPSBzY3JpcHRTdG9yYWdlLnJl
dHJpZXZlKHJlZ2lzdHJhdGlvbktleSwgcGFpci5rZXkpOwogICAgICAgICBpZiAoIWltcG9ydGVk
U2NyaXB0KSB7CkBAIC00ODEsNyArNDgxLDcgQEAgYm9vbCBSZWdpc3RyYXRpb25EYXRhYmFzZTo6
ZG9QdXNoQ2hhbmdlcyhjb25zdCBWZWN0b3I8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiYKICAg
ICAgICAgQVNTRVJUKG1haW5TY3JpcHQpOwogICAgICAgICBpZiAoIW1haW5TY3JpcHQpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+
IGltcG9ydGVkU2NyaXB0czsKKyAgICAgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8
VVJMLCBTY3JpcHRCdWZmZXI+IGltcG9ydGVkU2NyaXB0czsKICAgICAgICAgZm9yIChhdXRvJiBb
c2NyaXB0VVJMLCBzY3JpcHRdIDogZGF0YS5zY3JpcHRSZXNvdXJjZU1hcCkgewogICAgICAgICAg
ICAgYXV0byBpbXBvcnRlZFNjcmlwdCA9IHNjcmlwdFN0b3JhZ2Uuc3RvcmUoZGF0YS5yZWdpc3Ry
YXRpb24ua2V5LCBzY3JpcHRVUkwsIHNjcmlwdC5zY3JpcHQpOwogICAgICAgICAgICAgQVNTRVJU
KGltcG9ydGVkU2NyaXB0KTsKQEAgLTU0Niw3ICs1NDYsNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9u
RGF0YWJhc2U6OmltcG9ydFJlY29yZHMoKQogCiAgICAgICAgIGF1dG8gcmVmZXJyZXJQb2xpY3kg
PSBzcWwtPmNvbHVtblRleHQoMTApOwogCi0gICAgICAgIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiBzY3JpcHRSZXNvdXJjZU1hcDsKKyAgICAg
ICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE6OkltcG9ydGVkU2NyaXB0PiBzY3JpcHRSZXNvdXJjZU1hcDsKICAgICAgICAgYXV0byBz
Y3JpcHRSZXNvdXJjZU1hcERhdGFTcGFuID0gc3FsLT5jb2x1bW5CbG9iQXNTcGFuKDExKTsKICAg
ICAgICAgaWYgKHNjcmlwdFJlc291cmNlTWFwRGF0YVNwYW4uc2l6ZSgpKSB7CiAgICAgICAgICAg
ICBXVEY6OlBlcnNpc3RlbmNlOjpEZWNvZGVyIHNjcmlwdFJlc291cmNlTWFwRGVjb2RlcihzY3Jp
cHRSZXNvdXJjZU1hcERhdGFTcGFuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHAKaW5kZXggMjE5MDU3
NjE2Mzg5NzkyZWMzYWM2MDE2NTE4MTJjMzc1NTkyMjhjZC4uNDgyZDcxMDhiMGZmMTQ4MGFkZDI3
Yjc2ZmRjYjc4ZmVjYTMzZmRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHAKQEAgLTEyOCw3ICsx
MjgsNyBAQCB2b2lkIFJlZ2lzdHJhdGlvblN0b3JlOjphZGRSZWdpc3RyYXRpb25Gcm9tRGF0YWJh
c2UoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgZAogICAgIG1fc2VydmVyLmFkZFJlZ2lzdHJh
dGlvbkZyb21TdG9yZShXVEZNb3ZlKGRhdGEpKTsKIH0KIAotdm9pZCBSZWdpc3RyYXRpb25TdG9y
ZTo6ZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIEhhc2hNYXA8
VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKQordm9pZCBSZWdpc3RyYXRpb25T
dG9yZTo6ZGlkU2F2ZVdvcmtlclNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQsIE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2Ny
aXB0cykKIHsKICAgICBtX3NlcnZlci5kaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV1RGTW92ZShtYWluU2NyaXB0KSwgV1RGTW92ZShpbXBvcnRlZFNj
cmlwdHMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaAppbmRleCAzYjNjZDk4N2I3MWU0MjQ3MWYxZTIy
NjY3NTA3MDU5NDkxZTJjYjNkLi4wNWVhMGJjMzYxZDRkZTM2ZjFiMDM5MmExYmEwNzk3MmQ5ZWY2
MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1Jl
Z2lzdHJhdGlvblN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZFJlZ2lzdHJhdGlvbkZyb21EYXRhYmFzZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEm
Jik7CiAgICAgdm9pZCBkYXRhYmFzZUZhaWxlZFRvT3BlbigpOwogICAgIHZvaWQgZGF0YWJhc2VP
cGVuZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKTsKLSAgICB2b2lkIGRpZFNhdmVXb3JrZXJTY3JpcHRz
VG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0
LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cyk7CisgICAgdm9p
ZCBkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2Ny
aXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJM
LCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKIAogICAgIFNXU2VydmVyJiBzZXJ2
ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBkYTFiMDlhNTM1N2U4ZmI1NTUy
Y2JmY2UwYTQ1NmQ2MjgzMzUyN2Y2Li4zNGU0NDk1NzljY2EyMjYzZGM4ZTBhZmFiYjg5MTY0NTI1
NTUyZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgU1dTZXJ2ZXI6OmFkZFJlZ2lz
dHJhdGlvbkZyb21TdG9yZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkYXRhKQogICAgIH0p
OwogfQogCi12b2lkIFNXU2VydmVyOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYg
bWFpblNjcmlwdCwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMp
Cit2b2lkIFNXU2VydmVyOjpkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYgbWFpblNj
cmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYg
aW1wb3J0ZWRTY3JpcHRzKQogewogICAgIGlmIChhdXRvIHdvcmtlciA9IHdvcmtlckJ5SUQoc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpKQogICAgICAgICB3b3JrZXItPmRpZFNhdmVTY3JpcHRzVG9E
aXNrKFdURk1vdmUobWFpblNjcmlwdCksIFdURk1vdmUoaW1wb3J0ZWRTY3JpcHRzKSk7CkBAIC03
MTcsNyArNzE3LDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXIKICAgICAgICAgcmVnaXN0cmF0
aW9uLT5yZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKGNvbm5lY3Rpb24uaWRl
bnRpZmllcigpKTsKIH0KIAotdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVn
aXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY3JpcHRCdWZm
ZXImIHNjcmlwdCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5LCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiBjb2VwLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwLCBzdGQ6
Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXIpCit2b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIoY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdp
c3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjcmlwdEJ1ZmZl
ciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNvZXAsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhh
c2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmIHNj
cmlwdFJlc291cmNlTWFwLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiB7CiAgICAgdHJ5SW5zdGFsbENv
bnRleHREYXRhKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7IGpvYkRhdGFJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uZGF0YSgpLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
c2NyaXB0LCBjZXJ0aWZpY2F0ZUluZm8sIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29lcCwgcmVm
ZXJyZXJQb2xpY3ksIHVybCwgdHlwZSwgZmFsc2UsIGNsaWVudElzQXBwSW5pdGlhdGVkRm9yUmVn
aXN0cmFibGVEb21haW4oUmVnaXN0cmFibGVEb21haW4odXJsKSksIFdURk1vdmUoc2NyaXB0UmVz
b3VyY2VNYXApLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIHsgfSB9KTsKIH0KQEAgLTgw
MSw3ICs4MDEsNyBAQCB2b2lkIFNXU2VydmVyOjppbnN0YWxsQ29udGV4dERhdGEoY29uc3QgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQogICAgIH0KIAogICAgIGF1dG8qIHJlZ2lzdHJh
dGlvbiA9IG1fc2NvcGVUb1JlZ2lzdHJhdGlvbk1hcC5nZXQoZGF0YS5yZWdpc3RyYXRpb24ua2V5
KS5nZXQoKTsKLSAgICBhdXRvIHdvcmtlciA9IFNXU2VydmVyV29ya2VyOjpjcmVhdGUoKnRoaXMs
ICpyZWdpc3RyYXRpb24sIGRhdGEuc2NyaXB0VVJMLCBkYXRhLnNjcmlwdCwgZGF0YS5jZXJ0aWZp
Y2F0ZUluZm8sIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBkYXRhLmNyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3ksIFN0cmluZyB7IGRhdGEucmVmZXJyZXJQb2xpY3kgfSwgZGF0YS53b3JrZXJU
eXBlLCBkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBIYXNoTWFwPFVSTCwgU2VydmljZVdv
cmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4geyBkYXRhLnNjcmlwdFJlc291cmNlTWFw
IH0pOworICAgIGF1dG8gd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmNyZWF0ZSgqdGhpcywgKnJl
Z2lzdHJhdGlvbiwgZGF0YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBkYXRhLmNlcnRpZmljYXRl
SW5mbywgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGRhdGEuY3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeSwgU3RyaW5nIHsgZGF0YS5yZWZlcnJlclBvbGljeSB9LCBkYXRhLndvcmtlclR5cGUs
IGRhdGEuc2VydmljZVdvcmtlcklkZW50aWZpZXIsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNo
TWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4geyBkYXRh
LnNjcmlwdFJlc291cmNlTWFwIH0pOwogCiAgICAgYXV0byogY29ubmVjdGlvbiA9IHdvcmtlci0+
Y29udGV4dENvbm5lY3Rpb24oKTsKICAgICBBU1NFUlQoY29ubmVjdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNGUyOWZi
ZTRjM2Q5MWI0ZWI5NzYzOTdkZmVhYmQ0OWI5N2MxYmI5Ny4uZDNjNDlmMmFjMGMxYTRhM2VlNjQw
MzJlNGUzNzZkMzgwYjhhZDQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT2JqZWN0
SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC0xNTYsNyArMTU3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wgdW5yZWdpc3Ry
YXRpb25SZXN1bHQpOwogICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaChjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKLSAgICB2b2lkIHVwZGF0ZVdv
cmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTV1NlcnZlclJlZ2lz
dHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGNv
bnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9s
aWN5LCBXb3JrZXJUeXBlLCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJ
bXBvcnRlZFNjcmlwdD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHVwZGF0ZVdv
cmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTV1NlcnZlclJlZ2lz
dHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGNv
bnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9s
aWN5LCBXb3JrZXJUeXBlLCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmll
cik7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNXU2VydmVyV29ya2VyJik7CiAgICAgdm9p
ZCBmaXJlQWN0aXZhdGVFdmVudChTV1NlcnZlcldvcmtlciYpOwogCkBAIC0xOTcsNyArMTk4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMoU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24mKTsKIAogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uRnJvbVN0b3Jl
KFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmKTsKLSAgICB2b2lkIGRpZFNhdmVXb3JrZXJTY3Jp
cHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRCdWZmZXImJiBtYWluU2Ny
aXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cyk7CisgICAg
dm9pZCBkaWRTYXZlV29ya2VyU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
U2NyaXB0QnVmZmVyJiYgbWFpblNjcmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8
VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKICAgICB2b2lkIHJlZ2lzdHJh
dGlvblN0b3JlSW1wb3J0Q29tcGxldGUoKTsKICAgICB2b2lkIHJlZ2lzdHJhdGlvblN0b3JlRGF0
YWJhc2VGYWlsZWRUb09wZW4oKTsKICAgICB2b2lkIHN0b3JlUmVnaXN0cmF0aW9uRm9yV29ya2Vy
KFNXU2VydmVyV29ya2VyJik7CkBAIC0yOTEsNyArMjkyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWFrUHRyPFNXU2VydmVyUmVn
aXN0cmF0aW9uPj4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1h
cDsKICAgICBIYXNoTWFwPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBVbmlxdWVS
ZWY8U2VydmljZVdvcmtlckNsaWVudERhdGE+PiBtX2NsaWVudHNCeUlkOwogICAgIEhhc2hNYXA8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb247Ci0gICAgSGFz
aE1hcDxTdHJpbmcsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3Zpc2libGVD
bGllbnRJZFRvSW50ZXJuYWxDbGllbnRJZE1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29k
SGFzaE1hcDxTdHJpbmcsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3Zpc2li
bGVDbGllbnRJZFRvSW50ZXJuYWxDbGllbnRJZE1hcDsKIAogICAgIFVuaXF1ZVJlZjxTV09yaWdp
blN0b3JlPiBtX29yaWdpblN0b3JlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpc3RyYXRpb25T
dG9yZT4gbV9yZWdpc3RyYXRpb25TdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCmluZGV4IDU2OWIxYWMzMGUyZDQyOTQzYWNjOTU1Yzg5ZWVlYjk0MTg3YTRkMDMuLmY2
MjcwOTdhMTc0MWY1YWVkNGNhMDA3Yzg0MjNkNDc1OWYwN2M5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTY3JpcHRCdWZmZXImLCBjb25zdCBIYXNoTWFw
PFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBT
Y3JpcHRCdWZmZXImLCBjb25zdCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNj
cmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXRj
aEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlyZVB1c2hF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
dWludDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBmaXJlTm90aWZpY2F0aW9uRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGNvbnN0IE5vdGlmaWNhdGlvbkRhdGEmLCBOb3RpZmljYXRpb25FdmVudFR5cGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggZDE5ZTll
YWVhY2VkZmZkOWFhZWJkYjExOTUxYzhjOTdjMTBlY2RhYy4uNWM2YjJkYmRhYjNiNzRiYjNmZjM5
NmIzZDk4ZGFmOGVlNTFhMmYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAg
U1dTZXJ2ZXJXb3JrZXIqIFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZp
ZXIoU2VydmljZVdvcmtlcklkZW50aWYKIH0KIAogLy8gRklYTUU6IFVzZSByLXZhbHVlIHJlZmVy
ZW5jZXMgZm9yIHNjcmlwdCBhbmQgY29udGVudFNlY3VyaXR5UG9saWN5Ci1TV1NlcnZlcldvcmtl
cjo6U1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24m
IHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFNjcmlwdEJ1ZmZlciYg
c2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3ksIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHR5cGUsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwKQorU1dTZXJ2ZXJXb3Jr
ZXI6OlNXU2VydmVyV29ya2VyKFNXU2VydmVyJiBzZXJ2ZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9u
JiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTY3JpcHRCdWZmZXIm
IHNjcmlwdCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5
LCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiBjcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5LCBTdHJpbmcmJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxV
UkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVz
b3VyY2VNYXApCiAgICAgOiBtX3NlcnZlcihzZXJ2ZXIpCiAgICAgLCBtX3JlZ2lzdHJhdGlvbktl
eShyZWdpc3RyYXRpb24ua2V5KCkpCiAgICAgLCBtX3JlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb24p
CkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2V0U2NyaXB0UmVzb3Vy
Y2UoVVJMJiYgdXJsLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG8KICAgICBtX3Njcmlw
dFJlc291cmNlTWFwLnNldChXVEZNb3ZlKHVybCksIFdURk1vdmUoc2NyaXB0KSk7CiB9CiAKLXZv
aWQgU1dTZXJ2ZXJXb3JrZXI6OmRpZFNhdmVTY3JpcHRzVG9EaXNrKFNjcmlwdEJ1ZmZlciYmIG1h
aW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKQor
dm9pZCBTV1NlcnZlcldvcmtlcjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2NyaXB0QnVmZmVyJiYg
bWFpblNjcmlwdCwgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZm
ZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKQogewogICAgIC8vIFNlbmQgbW1hcCdkIHZlcnNpb24gb2Yg
dGhlIHNjcmlwdHMgdG8gdGhlIFNlcnZpY2VXb3JrZXIgcHJvY2VzcyBzbyB3ZSBjYW4gc2F2ZSBk
aXJ0eSBtZW1vcnkuCiAgICAgaWYgKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gdGhpcy0+Y29u
dGV4dENvbm5lY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCA3MTdkNTU5ZWRiZjM4MWIwNWM1NzIw
ZTU4ZTZjNDllYjZjNmQwN2M1Li45YmQ1NjdjM2NiOTcxMTUxODg5Nzk0OWMyMTkwODU2NTgyZjc2
NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5oCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMDYsNyArMTA3LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluZENsaWVudEJ5VmlzaWJsZUlk
ZW50aWZpZXIoY29uc3QgU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYp
PiYmKTsKICAgICB2b2lkIG1hdGNoQWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJik7CiAgICAgdm9p
ZCBzZXRTY3JpcHRSZXNvdXJjZShVUkwmJiwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBv
cnRlZFNjcmlwdCYmKTsKLSAgICB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFNjcmlwdEJ1ZmZl
ciYmIG1haW5TY3JpcHQsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3Jp
cHRzKTsKKyAgICB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFNjcmlwdEJ1ZmZlciYmIG1haW5T
Y3JpcHQsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYm
IGltcG9ydGVkU2NyaXB0cyk7CiAKICAgICB2b2lkIHNraXBXYWl0aW5nKCk7CiAgICAgYm9vbCBp
c1NraXBXYWl0aW5nRmxhZ1NldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTa2lwV2FpdGluZ0ZsYWdT
ZXQ7IH0KQEAgLTE0NCw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc0NsaWVudEFjdGl2ZVNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFNXU2VydmVyV29ya2VyKFNXU2VydmVyJiwg
U1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBTY3JpcHRCdWZmZXImLCBj
b25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiwgU3RyaW5nJiYgcmVm
ZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBIYXNoTWFw
PFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJik7CisgICAg
U1dTZXJ2ZXJXb3JrZXIoU1dTZXJ2ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVS
TCYsIGNvbnN0IFNjcmlwdEJ1ZmZlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IENyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kmLCBTdHJpbmcmJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIE1lbW9yeUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJik7CiAKICAgICB2b2lkIGNh
bGxXaGVuQWN0aXZhdGVkSGFuZGxlcihib29sIHN1Y2Nlc3MpOwogCkBAIC0xNjksNyArMTcwLDcg
QEAgcHJpdmF0ZToKICAgICBSZWdpc3RyYWJsZURvbWFpbiBtX3JlZ2lzdHJhYmxlRG9tYWluOwog
ICAgIGJvb2wgbV9pc1NraXBXYWl0aW5nRmxhZ1NldCB7IGZhbHNlIH07CiAgICAgVmVjdG9yPENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+PiBtX3doZW5BY3RpdmF0ZWRIYW5kbGVyczsKLSAg
ICBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4g
bV9zY3JpcHRSZXNvdXJjZU1hcDsKKyAgICBNZW1vcnlDb21wYWN0Um9iaW5Ib29kSGFzaE1hcDxV
UkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IG1fc2NyaXB0UmVz
b3VyY2VNYXA7CiAgICAgYm9vbCBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2hhc1RpbWVkT3V0QW55RmV0Y2hUYXNrcyB7IGZhbHNlIH07CiAgICAgVmVjdG9y
PENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fdGVybWluYXRpb25DYWxsYmFja3M7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4
IDAwMzg1NGI2MTBmMzMxZDdlODQ0OTliZTliMWNkNjY2MzZlMWZkMzUuLmY4NjgwOTliNTg3OTQ2
YWM0Y2QzYTVmYTliYWVlZDM2MzBjYjc1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXIKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6VGVybWluYXRlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7CiB9
CiAKLXZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRTYXZlU2NyaXB0c1Rv
RGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29u
c3QgU2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+
JiBpbXBvcnRlZFNjcmlwdHMpCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBNZW1vcnlDb21w
YWN0Um9iaW5Ib29kSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykK
IHsKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKSAmJiBQTEFURk9STShDT0NPQSkKICAg
ICAvLyBTZW5kIGZpbGUtbWFwcGVkIFNjcmlwdEJ1ZmZlcnMgb3ZlciB0byB0aGUgU2VydmljZVdv
cmtlciBwcm9jZXNzIHNvIHRoYXQgaXQgY2FuIHJlcGxhY2UgaXRzIGhlYXAtYWxsb2NhdGVkIGNv
cGllcyBhbmQgc2F2ZSBvbiBkaXJ0eSBtZW1vcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggNGVkMDZlMjg2OTJiNDJjOGE0YzhiNmZi
MTBhMDdjNGQyM2Q1YzliOC4uNjJhMmQ5NmNlNGE3MjJhMWM5ZmFlMThjYjk0NjRhMmE0NDk3ZTc1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aApAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaXJlQWN0
aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAg
dm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZp
bmFsOwotICAgIHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNjcmlwdEJ1ZmZlciYsIGNvbnN0IEhhc2hNYXA8
VVJMLCBXZWJDb3JlOjpTY3JpcHRCdWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMpIGZpbmFsOworICAg
IHZvaWQgZGlkU2F2ZVNjcmlwdHNUb0Rpc2soV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNjcmlwdEJ1ZmZlciYsIGNvbnN0IE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFVSTCwgV2ViQ29yZTo6U2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRz
KSBmaW5hbDsKICAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+Jikg
ZmluYWw7CiAgICAgdm9pZCBmaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIGZpcmVOb3RpZmljYXRpb25F
dmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uRGF0YSYsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGZkNWFiODFhM2NiOGFmMTU3
NTU3MjQ1M2UyY2ZjNTNhZjRjMGIyY2YuLjljNzJkNWMzYTEyZWMxNDc3OWVkZWE3NGQwZmUxOTBm
Y2QzZDkzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC01MDYsNyArNTA2LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBD
OjoKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBwYXJhbWV0ZXJzLmxvYWRzU3Vi
cmVzb3VyY2VzID0gKmxvYWRzU3VicmVzb3VyY2VzOwogCi0gICAgc3RkOjpvcHRpb25hbDxzdGQ6
Om9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nPj4+IGFsbG93ZWROZXR3b3JrSG9zdHM7CisgICAgc3Rk
OjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29k
SGFzaFNldDxTdHJpbmc+Pj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKICAgICBkZWNvZGVyID4+IGFs
bG93ZWROZXR3b3JrSG9zdHM7CiAgICAgaWYgKCFhbGxvd2VkTmV0d29ya0hvc3RzKQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDg0ZmM0NmM2ZjlhNjRjZDdmYTNiYzg1OTAxYWYw
YmJiMGE2ODU1ZDkuLmMxODk2OWVjNjA4N2NjOWI2Yzc1OGU4YWEzMjkyOGQwMjc3MmQyMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTUwLDcgKzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Nob3VsZFJlbGF4VGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgotI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShBUFBMSUNBVElP
Tl9NQU5JRkVTVCkKQEAgLTIyNCw3ICsyMjQsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgVmVjdG9yPFN0cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAg
IGJvb2wgdXNlclNjcmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmljYXRpb24geyB0cnVlIH07CiAg
ICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPEhh
c2hTZXQ8U3RyaW5nPj4gYWxsb3dlZE5ldHdvcmtIb3N0czsKKyAgICBzdGQ6Om9wdGlvbmFsPE1l
bW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+PiBhbGxvd2VkTmV0
d29ya0hvc3RzOwogCiAgICAgYm9vbCBjcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJs
ZWQgeyB0cnVlIH07CiAgICAgU3RyaW5nIHByb2Nlc3NEaXNwbGF5TmFtZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggYjVi
NWUyNWI0ZDY0ZThiYmU2ZmVhZDNhZTJhZmE1ZDBiNjkxYzQ4Ny4uNTRhOGJlZTM2NWNiODgzMGMx
ZGJhN2YzOTg2ZmQ1M2ExMDIyZmUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JvYmlu
SG9vZEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNTcsOCArMTU3LDggQEAgcHVibGljOgogICAgIGJvb2wg
bG9hZHNTdWJyZXNvdXJjZXMoKSBjb25zdCB7IHJldHVybiBtX2xvYWRzU3VicmVzb3VyY2VzOyB9
CiAgICAgdm9pZCBzZXRMb2Fkc1N1YnJlc291cmNlcyhib29sIGxvYWRzKSB7IG1fbG9hZHNTdWJy
ZXNvdXJjZXMgPSBsb2FkczsgfQogCi0gICAgY29uc3Qgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFdU
Rjo6U3RyaW5nPj4mIGFsbG93ZWROZXR3b3JrSG9zdHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
ZWROZXR3b3JrSG9zdHM7IH0KLSAgICB2b2lkIHNldEFsbG93ZWROZXR3b3JrSG9zdHMoc3RkOjpv
cHRpb25hbDxIYXNoU2V0PFdURjo6U3RyaW5nPj4mJiBob3N0cykgeyBtX2FsbG93ZWROZXR3b3Jr
SG9zdHMgPSBXVEZNb3ZlKGhvc3RzKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8TWVtb3J5
Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFdURjo6U3RyaW5nPj4mIGFsbG93ZWRO
ZXR3b3JrSG9zdHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWROZXR3b3JrSG9zdHM7IH0KKyAg
ICB2b2lkIHNldEFsbG93ZWROZXR3b3JrSG9zdHMoc3RkOjpvcHRpb25hbDxNZW1vcnlDb21wYWN0
TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiYmIGhvc3RzKSB7IG1fYWxs
b3dlZE5ldHdvcmtIb3N0cyA9IFdURk1vdmUoaG9zdHMpOyB9CiAKICNpZiBFTkFCTEUoQVBQX0JP
VU5EX0RPTUFJTlMpCiAgICAgYm9vbCBpZ25vcmVzQXBwQm91bmREb21haW5zKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZ25vcmVzQXBwQm91bmREb21haW5zOyB9CkBAIC0yMzUsNyArMjM1LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fY3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkIHsg
dHJ1ZSB9OwogICAgIFdURjo6U3RyaW5nIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lOwogICAgIGJvb2wg
bV9sb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8
V1RGOjpTdHJpbmc+PiBtX2FsbG93ZWROZXR3b3JrSG9zdHM7CisgICAgc3RkOjpvcHRpb25hbDxN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8V1RGOjpTdHJpbmc+PiBtX2Fs
bG93ZWROZXR3b3JrSG9zdHM7CiAgICAgCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQog
ICAgIGJvb2wgbV9pZ25vcmVzQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggMTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlmY2E2ZGY4OC4u
ZTg3ODlhOTFlOWNjNzZkZWU0NmRhNDcxOGRiZTIzZjNmYzFmMGJkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2ltcG9y
dCA8d3RmL1VSTFBhcnNlci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0
IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KQEAgLTk4Miw3ICs5
ODMsNyBAQCAtICh2b2lkKV9zZXRDT1JTRGlzYWJsaW5nUGF0dGVybnM6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilwYXR0ZXJucwogCiAtICh2b2lkKV9zZXRMb2Fkc0Zyb21OZXR3b3JrOihCT09MKWxv
YWRzCiB7Ci0gICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRBbGxvd2VkTmV0d29ya0hvc3RzKGxv
YWRzID8gc3RkOjpudWxsb3B0IDogc3RkOjpvcHRpb25hbDxIYXNoU2V0PFN0cmluZz4+IHsgSGFz
aFNldDxTdHJpbmc+IHsgfSB9KTsKKyAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFsbG93ZWRO
ZXR3b3JrSG9zdHMobG9hZHMgPyBzdGQ6Om51bGxvcHQgOiBzdGQ6Om9wdGlvbmFsIHsgTWVtb3J5
Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4geyB9IH0pOwogfQogCiAt
IChCT09MKV9sb2Fkc0Zyb21OZXR3b3JrCkBAIC05OTQsNyArOTk1LDcgQEAgLSAodm9pZClfc2V0
QWxsb3dlZE5ldHdvcmtIb3N0czooTlNTZXQ8TlNTdHJpbmcgKj4gKilob3N0cwogewogICAgIGlm
ICghaG9zdHMpCiAgICAgICAgIHJldHVybiBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFsbG93ZWRO
ZXR3b3JrSG9zdHMoc3RkOjpudWxsb3B0KTsKLSAgICBIYXNoU2V0PFN0cmluZz4gc2V0OworICAg
IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IHNldDsKICAg
ICBmb3IgKE5TU3RyaW5nICpob3N0IGluIGhvc3RzKQogICAgICAgICBzZXQuYWRkKGhvc3QpOwog
ICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QWxsb3dlZE5ldHdvcmtIb3N0cyhXVEZNb3ZlKHNl
dCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>